来自PHP的Ajax的Jquery自动完成功能无法正常工作

时间:2014-02-15 19:42:44

标签: javascript php jquery ajax

以下ajax调用

var whatever = [];
$.ajax({
    url: "myScript.php",
    success: function (response) {
        whatever = response.split(",");
    }
});

正在生成:

"ABC,DEF,GHI,JKL,"

我想在JQuery自动完成中使用哪些值:

$('#conta').autocomplete({
        source:whatever
    });

但是,自动完成弹出窗口中不会显示任何内容。

如果我直接在JS中键入值,它可以完美地运行:

var whatever=[
        "ABC",
        "DEF","GHI","JKL"
    ];

但是为什么PHP生成时它不起作用?

2 个答案:

答案 0 :(得分:0)

在您的源代码中,您的php数组需要包含带有"标签的行#34;像这样的关键:

foreach($rows as $key)
{
    $results[] = array('label' => ($key['nome']));
}

echo json_encode($results);

此外,如果您的数据库行未在utf8中编码,则需要对它们进行编码,否则它将为" null":

    $results[] = array('label' => utf8_encode($key['nome']));

更新:

myScript.php:

...
foreach($rows as $key)
{
    $results[] = array('label' => ($key['nome']));
}

echo json_encode($results);

使用Javascript:

$(function(){
    $('#conta').autocomplete({
        source:"myScript.php"
    });
});

答案 1 :(得分:0)

尝试放$('#conta').autocomplete({ source:whatever });

成功回调函数