jqueryajax问题-can';我不能让我的功能发挥作用
我正在尝试为jquery定制一个自动完成插件。这应该非常简单 它应该从autocomplete.php中提取名称列表,然后发送到“lookup”。当我手动键入它时,它可以工作,但当我尝试使用函数getnames()获取名称时,它不工作。我返回的数据正确吗?php文件也可以工作jqueryajax问题-can';我不能让我的功能发挥作用,jquery,ajax,Jquery,Ajax,我正在尝试为jquery定制一个自动完成插件。这应该非常简单 它应该从autocomplete.php中提取名称列表,然后发送到“lookup”。当我手动键入它时,它可以工作,但当我尝试使用函数getnames()获取名称时,它不工作。我返回的数据正确吗?php文件也可以工作 var options, a; function getnames() { $.ajax({ type:'POST', dataType:'json', data:
var options, a;
function getnames() {
$.ajax({
type:'POST',
dataType:'json',
data:{ },
url:'autocomplete.php',
timeout:1000,
success:function (data) {
return data;
}
});
}
// Doesn't work:
// DOC READY
$("#members").one("click", function () {
options = {
lookup:getnames()
};
a = $('#members').autocomplete(options);
});
// Works:
// DOC READY
$("#members").one("click", function () {
options = {
lookup:["name1","name2"]
};
a = $('#members').autocomplete(options);
});
autocomplete.php
<?
header("Content-Type: application/json", true);
$info = array("name1","name2");
echo json_encode($info);
?>
试试这个:
function getnames() {
var myData;
$.ajax({
type:'POST',
dataType:'json',
data:{ },
url:'autocomplete.php',
timeout:1000,
success:function (data) {
myData = data;
}
});
return myData;
}
您必须先获得名称,然后等待ajax响应。当它到达时,您必须启动自动完成 例如(未经测试):
这不就是返回未定义的
吗?
function getnames() {
$.ajax({
type:'POST',
dataType:'json',
data:{ },
url:'autocomplete.php',
timeout:1000,
success:function (data) {
options = {
lookup:data
};
a = $('#members').autocomplete(options);
}
});
}
$("#members").one("click", function () {
getnames();
}