Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 为什么我的自动完成没有任何建议_Javascript_Php_Jquery_Ajax_Mysqli - Fatal编程技术网

Javascript 为什么我的自动完成没有任何建议

Javascript 为什么我的自动完成没有任何建议,javascript,php,jquery,ajax,mysqli,Javascript,Php,Jquery,Ajax,Mysqli,这是我的php文件。我想为不工作的文本框设置autosuggest。我有3-4个autosuggest的来源 <?php $con =mysqli_connect("due connectn attributes"); $return_arr = array(); $search = mysqli_real_escape_string($_GET["term"]); if (!$search) return; $sql = "SELECT PName, PNo FROM Player

这是我的php文件。我想为不工作的文本框设置autosuggest。我有3-4个autosuggest的来源

<?php
$con =mysqli_connect("due connectn attributes");
$return_arr = array();
$search = mysqli_real_escape_string($_GET["term"]);   
if (!$search) return;
$sql = "SELECT PName, PNo FROM PlayerDetails WHERE PName LIKE '%$search%'";
$sql = mysqli_query($sql);

while ($row = mysqli_fetch_assoc($sql)){
    $row_array['PNo'] = $row['PNo'];
    $row_array['PName'] = $row['PName'];
    //echo "$PName|$PNo\n";

            array_push($return_arr, $row_array);
            /* Toss back results as json encoded array. */
            echo json_encode($return_arr);
}
mysqli_close($con); 
?>

javascript部分:

 <script src="/_js/jquery-2.1.3.min.js"></script>
 <script src="/_js/jquery-ui.min.js"></script>
 <script>
 $(document).ready(function() {
    $("#auto").autocomplete({
            source: "../_php/search.php",
            autoFocus:true
            }
        });
      });   //end READY

 </script>

$(文档).ready(函数(){
$(“#自动”).autocomplete({
来源:“../\u php/search.php”,
自动对焦:正确
}
});
});   //准备就绪
HTML部分是:

  <p>
    <label for="Username">Username:</label>
    <input type="text"  name="auto" id="auto">
</p>

用户名:


您有一个语法错误:

$(document).ready(function() {
     $("#auto").autocomplete({
        source: "../_php/search.php",
        autoFocus:true
     }); //<----should be closed like this.
});
$(文档).ready(函数(){
$(“#自动”).autocomplete({
来源:“../\u php/search.php”,
自动对焦:正确
});//不能生成多个JSON编码;这将导致没有有效的JSON,jQuery将忽略它

while ($row = mysqli_fetch_assoc($sql)) {
    $row_array['PNo'] = $row['PNo'];
    $row_array['PName'] = $row['PName'];
    array_push($return_arr, $row_array);
    /* Toss back results as json encoded array. */
    echo json_encode($return_arr);
}

echo json\u encode($return\u arr);
只能在
mysqli\u关闭后发生一次:

    array_push($return_arr, $row_array);
} /*返回json编码数组的结果*/ echo json_encode($return_arr)

此外,为了以防万一,请输出JSON内容类型标题:

}
/* Toss back results as json encoded array. */
Header("Content-Type: application/json; charset=UTF-8");
die(json_encode($return_arr));
最后,您在评论中报告此错误:

<b>Warning</b>: include() [<a href='function.include'>function.include</a>]: Failed opening '../_php/search.php' for inclusion (include_path='.:/usr/local/php-5.3.29/share/pear')
不能这样做-
search.php
必须是一个独立的php脚本,如果您从如下浏览器调用它的URL,它应该返回一个有效的JSON:

http://<yoursite>/_php/search.php?term=%
文件组织(有多种方法) HTML文件可以放在任何你想要的地方,比如说它在/\u HTML/page.HTML中

这个文件包括必要的JS代码,它位于/_JS、so/_JS/jquery.min.JS等等

PHP由HTML中的Javascript代码调用,另一个答案中对此进行了详细说明。当您在Javascript中包含“search.PHP”URL时,将生成一个新的浏览器调用,该调用在AJAX中有自己的生命周期。此调用必须能够“生存”因此,如果在浏览器的地址栏中使用它,它也必须工作。否则,它在脚本中也无法工作

因此,要测试脚本是否正常工作(当然,您也可以使用Firebug等工具),您可以从浏览器中调用它:

http://<yoursite>/_php/search.php?term=%
http:///_php/search.php?term=%
然后,脚本必须连接到数据库并执行查询,以Autocomplete期望的格式返回有效的JSON。因此,在回答上述调用时,您必须在浏览器窗口中看到有效的JSON


.autocomplete函数已正确绑定$(“#auto”)而且输入字段的id确实是“auto”。因此将生成调用。您在javascript中输入的URI必须是有效的,引用javascript,因此如果表单位于/_html/searchpage.html中,而脚本位于/_php/search.php中,则相对URI将是../_php/search.php(当然,如果表单位于/_html/forms/search.html中,则需要../././.\u php/search.php等)。

控制台中出现了什么错误?警告:include()[]:打开“../.\u php/search.php”以包含失败(include\u path=”:/usr/local/php-5.3.29/share/pear)所以你的路径是错误的
。/\u php/search.php
你能检查
search.php
是否在
\u php
文件夹上方的文件夹中吗?你可以尝试使用js数组作为源。只需回显以逗号分隔的结果,然后用js将其拆分并分配给一个数组。将该数组称为源。如下面所示:是的缺点OLE现在没有显示任何错误,只是更改了倒逗号,但工作没有发生。我这样做了,但什么也没有发生。如果您有其他方法执行autosuggest,请告诉我。我在理解PDO php代码方面有问题。我无法理解这一点。您的意思是说search.php应该放在html文件所在的同一文件夹中s.要生成此错误,您必须从PHP中包含search.PHP脚本。不能这样做-search.PHP必须是一个独立的PHP脚本,如果您这样调用它的URL,它应该返回一个有效的JSON:/\u PHP/search.PHP?term=%这是键入一些字符后的路径还是将此路径放入javascript中。不,您是英语一点也不差。请回答我上面关于路径的查询。你的search.php可以放在任何你想要的地方。/\u php/search.php很好。你注意到的php错误意味着其他一些脚本包含search.php,但这不是必需的,不应该这样做。我会在浏览器中尝试后编辑答案错误是警告:mysqli\u real\u escape\string()需要2个参数,1个在第11行的mysite/_php/search.php中给出。您还必须传递连接链接。请查看mysqli escape string函数的手册。
[["PnoNumber1":"PNameNumber1"],["PnoNumber2":"PNameNumber2"]]
http://<yoursite>/_php/search.php?term=%