Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将简单的JQuery自动完成语法与对远程数据源(PHP脚本)的ajax调用结合起来?_Javascript_Php_Jquery_Ajax_Jquery Autocomplete - Fatal编程技术网

Javascript 如何将简单的JQuery自动完成语法与对远程数据源(PHP脚本)的ajax调用结合起来?

Javascript 如何将简单的JQuery自动完成语法与对远程数据源(PHP脚本)的ajax调用结合起来?,javascript,php,jquery,ajax,jquery-autocomplete,Javascript,Php,Jquery,Ajax,Jquery Autocomplete,我有一个功能正常的JQuery autocomplete脚本,它调用一个PHP脚本查询数据库,循环查询结果,将结果插入数组,然后这个函数响应数组json_编码,autocomplete工作得很好: 示例A: $(function() { var availableTags = <?php echo json_encode($names); ?>; $( "#Person" ).autocomplete({ dataType: "

我有一个功能正常的JQuery autocomplete脚本,它调用一个PHP脚本查询数据库,循环查询结果,将结果插入数组,然后这个函数响应数组json_编码,autocomplete工作得很好:

示例A:

$(function() {
        var availableTags = <?php echo json_encode($names); ?>;
        $( "#Person" ).autocomplete({
            dataType: "json",
            source: availableTags
        });
    });

然而,不同之处在于,我必须手动设置Person建议框的样式,并手工编写许多复杂的代码,这些代码在功能上被捆绑到简单的JQuery自动完成中。有没有一种方法可以利用示例a和示例B的功能(这样我就有了JQuery autocomplete附带的简单CSS和功能,但是示例B的结果是保密的(在源代码中不可见的)?非常感谢您的帮助。

$names
回显到div元素中,将该div中的所有内容复制到javascript变量中,然后从DOM(和源代码)中删除该div及其内部的所有名称

PHP:

编辑:

div在开始时需要为空。只有在页面加载完成后,才可以使用ajax调用(类似于示例B中的调用)获取名称,然后将其添加到

然后按照第一条建议继续

// copy names from the div
var availableTags = $('div.names').html();

// remove div
$('div.names').remove();

// add content to autocomplete
$("#Person").autocomplete({
    dataType: "json",
    source: availableTags
});

我们需要确保加载页面时div为空,并在加载后动态获取名称,请参见上面的编辑注意,如果不小心,在html元素中粘贴json字符串可能会损坏json。而且…为什么在ajax之后,将结果粘贴到DOM中,然后将其从DOM中拉出?这没有意义。just将其保存在一个变量中。文档中没有使用ajax的示例吗?尝试过它…不起作用…为什么不起作用?它以什么方式不起作用?它是如何起作用的?是否出现任何错误?是否查看了控制台中的ajax响应?是否确保服务器以autocomplete期望的格式响应?这就是问题所在问!json_encode($php_数组)对吗?我的php脚本与json_encode($php_数组)相呼应。这是否正确?是的,但这并不意味着数组的格式正确。也不要问我正确的格式是什么,我不知道,我必须查看文档。
<div class="names"><?php echo json_encode($names) ?></div>
// copy names from the div
var availableTags = $('div.names').html();

// remove div
$('div.names').remove();

// add content to autocomplete
$("#Person").autocomplete({
    dataType: "json",
    source: availableTags
});
$('div.names').html(data);
// copy names from the div
var availableTags = $('div.names').html();

// remove div
$('div.names').remove();

// add content to autocomplete
$("#Person").autocomplete({
    dataType: "json",
    source: availableTags
});