我正在使用php从mysql数据库中获取数据,然后在jquery ui自动完成中使用该数据。但似乎返回的JSON与jquery ui需要的不匹配。 返回的JSON看起来像这样:
["dyes miran famint","annie ferrer mendrez","annie ferrer mendrez","anton setra masgre","anton setra masgre","jeniffer hades cruz","jeniffer hades cruz","alvin louie urbano maranon","alvin louie urbano maranon","francisza jerrielleza bullonza","blaze br tags anchor"]
我甚至在它上面使用了jQuery.parseJSON。
这就是我在php文件中所做的:
$class_code = $_POST['class_code'];
$student_list = array();
$students = mysql_query("SELECT accounts.id, fname, mname, lname, classcode
FROM account_details
LEFT JOIN accounts ON account_details.id = accounts.id
LEFT JOIN class_rooster ON accounts.id = class_rooster.id
WHERE accounts.status = 1 AND accounts.type='student'
AND (class_rooster.id IS NULL OR classcode !='$class_code')");
$students_num = mysql_num_rows($students);
if($students_num > 0){
while($row = mysql_fetch_assoc($students)){
$student_list[] = $row['fname'] . ' ' . $row['mname'] . ' ' . $row['lname'];
}
echo json_encode($student_list);
这是我得到的错误:
Uncaught TypeError: Property 'source' of object #<Object> is not a function
这是JavaScript:
function get_students(){
var class_code = $('#current_classes').val();
$.post('student_list.php', {'class_code' : class_code},
function(data){
return data;
}
);
}
$("#student_name").live('click', function(){
$("#student_name").autocomplete({
source: get_students()
});
});
答案 0 :(得分:1)
查看documentation的概述部分,了解如何使用回调源类型。传递给函数的第二个参数是要使用的响应回调。您的get_students()
函数应如下所示:
function get_students(current_val,callback){
var class_code = $('#current_classes').val();
$.post('student_list.php', {'class_code' : class_code},
function(data){
callback(data);
}
);
}
答案 1 :(得分:0)
看看documentation,它正在寻找类似的东西:
$(function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
我的猜测是你正在$().autocomplete(json_obj)
而不是$().autocomplete({source: json_obj})
。
答案 2 :(得分:0)
我认为你没有在autcompelete插件代码中使用源实体。检查您的自动完整代码
$("#inputbox").autocomplete({ source: data });
我相信您可以使用没有源实体的数据
同时检查你的php输出数组