2016-12-03 66 views
1

嗨。AJAX從SQL表自動完成?

我如何能夠根據來自SQL表的信息自動完成輸入?

我曾嘗試:

[CSS] 
    [JQUERY] 
    <script> 
$(function() { 
var availableTags = [ 
<?php 
    if ($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
     echo '"'.$row["user_username"].'",'; 
     } 
    } 
?> 
    ]; 
    $("#tags").autocomplete({ 
    source: availableTags 
    }); 
}); 
    </script> 


<div class="ui-widget"> 
    <label for="tags">Tags: </label> 
    <input id="tags"> 
</div> 

這個工作,但是當我嘗試添加:

$sql = "SELECT username FROM table"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     echo '"'.$row["username"].'",<br>'; 
    } 
} 

而不是 「用戶名1」 等的JS名單,也不會工作。

如何使用PHP選擇自動填充語句列表(用戶名1,用戶名2等)的用戶名?

這可以改寫爲「我如何從JS數組中的SQL查詢迴應PHP?」

任何幫助將不勝感激。謝謝。

+0

''''代碼裏''''代碼''''' – Dekel

+0

假設您使用jQuery UI自動完成包,請刪除
標記 – axlj

+0

?你不能'從JS數組中的SQL查詢中迴應PHP'。您可以使用JS向URL發出請求,該URL將返回JSON數據以供您的自動完成器使用。 – jcorry

回答

0

看來你讓它變得複雜。這裏您只需要將PHP數組放在JS變量中。

所以,

var usernames = <?= json_encode($arr) ?>;

var usernames = <?php echo json_encode($arr) ?>;

就可以了。

<?php 

    if ($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
      $usernames[] = $row["user_username"]; 
     } 
    } 

?> 

<script> 
    var usernames = <?= json_encode($usernames); ?> 
    $("#tags").autocomplete({ 
     source: usernames 
    }); 
</script> 

希望你有解決辦法。