2012-08-03 34 views
0

我嘗試使用ajax(jQuery)完成自動完成任務。讓我們來看看腳本無法使用ajax + jQuery自動完成工作

這裏的html =>

<input type="text" name="user_key" id="user_key"> 

這裏是在同一個文件的JavaScript =>

<script type="text/javascript"> 
$(function(){ 
    $("#user_key").autocomplete({ 
     source: function(request,response){ 
      var suggestions = []; 
      $.ajax({ 
       url: "/ajax/autocomplete.php", 
       type: "POST", 
       data: {user_key:$(this).val()}, 
       success: function(result){ 
        $.each(result,function(i,val){ 
         suggestions.push(val.name); 
        }); 
       }, 
       dataType: "json" 
      }); 
      response(suggestions); 
     } 
    }); 
}); 
</script> 

,這裏是PHP腳本autocomplete.php文件=>

if (!$connection->connect_errno){ 
     if ($connection->set_charset("utf8")){ 
      if ($r = $connection->query("SELECT name FROM users WHERE name LIKE '" . $_POST['user_key'] . "%'")){ 
       for ($x=0,$numrows = $r->num_rows;$x<$numrows;$x++){ 
        if ($row = $r->fetch_assoc()){ 
         $array[$x] = array("name",$row['name']); 
        } 
       } 
       $r->free(); 
      } 
     } 
    } 
    echo json_encode($array); 

PS。它不起作用。請幫忙,過去兩天我一直在努力完成這項任務,但無法完成此任務。感謝預先:)

+0

考慮您已經包括jQuery庫,如果你正在尋找在Firefox檢查錯誤控制檯控制+ SHIFT + J,檢查你得到了什麼確切的錯誤。 – VibhaJ 2012-08-03 11:47:29

+0

AJAX請求返回什麼? – Tjkoopa 2012-08-03 11:49:43

+0

@Tjkoopa你是什麼意思?我試圖以自動完成形式從mysql數據庫onkeyup中檢索信息(用戶名) – tnanoba 2012-08-03 11:52:22

回答

0
$array[$x] = array("name",$row['name']); 

這是使名稱,並從數據庫中的值兩者作爲數組的()中的元素

變化autocomplete.php的代碼

if (!$connection->connect_errno){ 
     if ($connection->set_charset("utf8")){ 
      if ($r = $connection->query("SELECT name FROM users WHERE name LIKE '" . $_POST['user_key'] . "%'")){ 
       for ($x=0,$numrows = $r->num_rows;$x<$numrows;$x++){ 
        if ($row = $r->fetch_assoc()){ 
         $array[$x] = array("name"=>$row['name']); 
        } 
       } 
       $r->free(); 
      } 
     } 
    } 
    echo json_encode($array); 

這將使名稱成爲從數據庫中提取的值的關鍵字

這將幫助您。

+0

你的代碼中有什麼改變?我和你的有什麼區別? – tnanoba 2012-08-03 13:11:38