jQuery自动完成json相同的结果

时间:2017-05-01 17:14:17

标签: php jquery json autocomplete

我在 index.php

中有此代码
$(document).ready(function(){
$("#searchInput").autocomplete({
source: "getResults.php"
});

getResults.php 包含:

<?php
$result = array();
array_push($result, "Apple");
array_push($result, "Banana");
array_push($result, "Orange");
echo json_encode($result);
?>

为什么我会一直得到相同的结果?

无论我在searchInput中输入什么,我都会得到相同的列表/结果,

谢谢。

2 个答案:

答案 0 :(得分:0)

因为您没有发送“无论提交到php脚本中的任何内容”

您只有这些数据:

<?php
$result = array();
array_push($result, "Apple");
array_push($result, "Banana");
array_push($result, "Orange");
echo json_encode($result);
?>

这就是你所能获得的一切。

您需要检查$_POST并将帖子内容推送到数组

UPDATE

由于您在评论中提到要显示自动建议,因此您需要执行以下操作。

//php file

if($_POST && isset($_POST['keyword']){
  $search = $_POST['keyword']; 
  $array =  ['Apple', 'Banana', 'Orange']; 

  foreach($array as $fruit){
    if(strpos($search, $fruit) === 0){
      echo $fruit; 
    }
  }
}

您可以通过ajax将该单词发送到此php文件作为POST请求。

答案 1 :(得分:0)

我在你的JS中看到了一个缺失的括号,我希望你能在你的结尾正确设置:

&#13;
&#13;
$(document).ready(function(){
  $("#searchInput").autocomplete({
  source: "getResults.php"
});
&#13;
&#13;
&#13;

应该是:

&#13;
&#13;
$(document).ready(function(){
    $("#searchInput").autocomplete({
      source: "getResults.php"
    });
});
&#13;
&#13;
&#13;

编辑:

由于您要从其他文件获取数据,因此您需要按照此处的说明操作:

https://jqueryui.com/autocomplete/#remote

这将引导您调用php文件。