Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 UI auto complete未筛选php文件返回的响应文本_Javascript_Jquery_Json_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

Javascript JQuery UI auto complete未筛选php文件返回的响应文本

Javascript JQuery UI auto complete未筛选php文件返回的响应文本,javascript,jquery,json,jquery-ui,jquery-ui-autocomplete,Javascript,Jquery,Json,Jquery Ui,Jquery Ui Autocomplete,与本地数组一起传递的JQuery UI自动完成显示筛选结果。 以下是代码: var localArray = ["BASIC","C++","Fortran","Haskell","JavaScript","PHP","Scheme"]; $( "#tags" ).autocomplete({ source: localArray }); $( "#tags" ).autocomplete({ source: "PHP_Code/MyAjax.php?page=tut_sear

与本地数组一起传递的JQuery UI自动完成显示筛选结果。
以下是代码:

var localArray = ["BASIC","C++","Fortran","Haskell","JavaScript","PHP","Scheme"];
$( "#tags" ).autocomplete({
    source: localArray
});
$( "#tags" ).autocomplete({
    source: "PHP_Code/MyAjax.php?page=tut_search_ac"
});
但当我将php文件传递给source标记(返回相同的数组)时,现在auto complete显示(整个数据)未过滤的结果,无论按哪个字符(匹配或不匹配)。
以下是代码:

var localArray = ["BASIC","C++","Fortran","Haskell","JavaScript","PHP","Scheme"];
$( "#tags" ).autocomplete({
    source: localArray
});
$( "#tags" ).autocomplete({
    source: "PHP_Code/MyAjax.php?page=tut_search_ac"
});
以下是PHP文件:

$query = "SELECT title FROM tutorial";
$rs = mysql_query($query) or die(mysql_error()." in query $query");
if($rs)
{
    while($row = mysql_fetch_array($rs))
    {
        $contents[] = $row['title'];
    }
}

echo json_encode($contents);
它总是显示数组的所有值。你也可以检查一下
请给我一些解决方案。

提前感谢。

源属性作为远程资源而不是本地资源使用时,要求数据采用特定格式。具体来说,每个项都是一个JSON对象,具有
标签
属性。更改PHP脚本以如下方式输出JSON数据:

[
  { label: "BASIC", value: "BASIC" },
  { label: "C++", value: "C++" },
  { label: "Fortran", value: "Fortran" },
  { label: "Haskell", value: "Haskell" },
  { label: "JavaScript", value: "JavaScript" },
  { label: "PHP", value: "PHP" },
  { label: "Scheme", value: "Scheme" }
]
要从PHP中获取此结构,需要使用以下格式的PHP数组:

$contents[] = array( "label" => "BASIC", "value" => "BASIC" );
$contents[] = array( "label" => "C++", "value" => "C++" );
$contents[] = array( "label" => "Fortran", "value" => "Fortran" );
$contents[] = array( "label" => "Haskell", "value" => "Haskell" );
$contents[] = array( "label" => "JavaScript", "value" => "JavaScript" );
$contents[] = array( "label" => "PHP", "value" => "PHP" );
$contents[] = array( "label" => "Scheme", "value" => "Scheme" );

echo json_encode($contents);
您还可以在此处查看如何操作jquery ui以适合您的数据:


我意识到了这个问题。上面的代码没有什么实际错误,只是有点缺乏概念。
JQuery只在本地过滤JavaScript提供的数组。
但不过滤php/服务器端返回的响应文本。
因此,我们必须在php文件中包含过滤代码。(这也很理想)


如果您有什么问题,请在评论中反馈。

请给我PHP脚本的示例数据以生成以下格式:OK,我将更新我的答案。还有其他项目我可以为你做吗?谢谢亲爱的@swatkins。我会尽快检查并接受你的答案。同样的问题也存在。现在我上传了。请检查这个刚刚检查过的-看起来它像预期的那样工作。