2015-07-03 35 views
1

我想創建一個簡單的搜索表單,將有自動完成。自動完成的值取自位於不同服務器上的數據庫。 我有這樣的:如何使用JavaScript自動完成與PHP遠程

<form action="smth.php" method="POST"> 
    <label>Tracking Tag</label> 
    <input class="form-control" type="text" name="tag" id="tag" /> 
    <button class="submit btn btn-success" type="submit" name="search" value="Show">Show</button> 
</form> 

我的小JavaScript是:

$("#tag").autocomplete({source: "suggest_tag.php", minLength:1}); 

現在我有一個被調用此suggest_tag.php文件。

<?php 
    if (!isset($_REQUEST['term'])) 
    exit; 

    $data = file_get_contents("http://xxx/suggest_tag.php? tag=".$_REQUEST["term"]); 
    echo $data; 
?> 

腳本在HTTP/XXX/suggest_tag.php如下:

<?php 
    if (!isset($_GET['tag'])) 
     exit; 

    $conn = mysql_connect(**credentials**) or die('Not able to connect to db'); 
    $query = "select query;"; 
    $result = mysql_query($query) or die(mysql_error()); 

    $data = array(); 
    if ($result && mysql_num_rows($result)) 
    { 
     while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
     { 
      $data[] = array("label"=>$row['tag'], "value"=>$row["tag"]); 
     } 
    } 
    echo json_encode($data); 
?> 

什麼我做錯了,我該如何解決?

+0

您是否收到任何錯誤,或者您的輸出錯誤? – Djip

+0

即使我知道在數據庫中存在類似的記錄,我也沒有獲得任何自動填充建議。 – ivanacorovic

+0

我想你的源代碼必須是數據,而不是url,所以你必須對php頁面進行ajax調用,然後返回數據,然後才能使用它。 – Djip

回答

0

不,我在查詢內部有一個愚蠢的語法錯誤,其餘的工作正常。這是一個有效的代碼。

謝謝!

0

您正在使用自動完成的自定義數據。如果你這樣做,你需要覆蓋中提到的selectfocus函數。