2011-10-27 136 views
0

這是我的jQuery函數:自動填充返回undefined

$(function() { 
    $("#user").autocomplete({ 
     source: 'spiderman/null/users.php', 
     minLength: 2 
    }); 
}); 

當我開始在我的

<input type="text" class="highlight" id="user" name="user"/> 

是表示說:「不確定的」一個項目列表輸入最少2個字母。 似乎它是一個無效的來源,但我敢肯定它是有效的,因爲我已經在同一目錄中製作了include_once,並且加載了源腳本。

這是我的PHP代碼:

if(!$_GET['term']) { 
    die(); 
} 

$return_arr = array(); 
$ac_term = "%".$_GET['term']."%"; 
$query = "SELECT `name` FROM `users` WHERE `name` LIKE :term"; 
$result = $conn->prepare($query); 
$result->bindValue(":term", $ac_term); 
$result->execute(); 

/* Retrieve and store in array the results of the query.*/ 
while ($row = $result->fetch(PDO::FETCH_ASSOC)) { 
    $row_array['name'] = $row['name']; 

    array_push($return_arr, $row_array); 
} 

/* Toss back results as json encoded array. */ 
echo json_encode($return_arr); 

我測試過的PHP代碼也和它運作良好:作爲長期lol它返回:

[{"name":"LolShit"},{"name":"Lolipop"},{"name":"Lolo"},{"name":"Lolololololololo"},{"name":"Loll"},{"name":"Pro Lol"}] 
+0

您是否需要設置json文件類型標頭? – Tim

+0

@Tim你在做什麼? – Cyclone

回答

0

我添加

$row_array['value'] = $row['name'];

而且它的工作...該死的。 我希望可以回答自己的問題,哈哈。

0

我想你或者只是想讓你的JSON數組看起來像這樣:

["LolShit","Lolipop","Lolo","Etc..."] 

或者如果你想使用一個對象p rovide一個labelvalue(其UI自動完成預計):

[{"label":"LolShit","value":"LolShit"},{"label":"Lolipop","value":"Lolipop"},...]