Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Php 如何在自动完成输入中显示数据库中的多个字段_Php_Jquery_Html_Mysql_Autocomplete - Fatal编程技术网

Php 如何在自动完成输入中显示数据库中的多个字段

Php 如何在自动完成输入中显示数据库中的多个字段,php,jquery,html,mysql,autocomplete,Php,Jquery,Html,Mysql,Autocomplete,你好,这是我的问题 我有一个自动完成输入,可以从数据库中检索数据,显示图像和文本。我想做的是在它旁边添加另一个文本,但是来自另一个字段。但当我尝试时,它再也找不到我的图像了 这是我的密码: PHP文件 <input type="text" name="text" id="text" autocomplete="off"><br /> <input type="submit" name="submit" class="button"><br /

你好,这是我的问题

我有一个自动完成输入,可以从数据库中检索数据,显示图像和文本。我想做的是在它旁边添加另一个文本,但是来自另一个字段。但当我尝试时,它再也找不到我的图像了

这是我的密码:

PHP文件


  <input type="text" name="text" id="text" autocomplete="off"><br />

  <input type="submit" name="submit" class="button"><br /><br />

</form>

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery-ui.min.js"></script>

<script type="text/javascript">

  $(function(){

    $('#ref').autocomplete({

      source: 'autocomplete.php'

    }).data("ui-autocomplete")._renderItem = function (ul, item) {
      return $("<li><div><img src='img/" + item.value + "' /><span>" + item.value + "</span></div></li>").appendTo(ul);
    };

  });
</script>
因此,要明确的是,这是我希望在我的输入中显示的方式:

MYIMGDATA1DATA2

对不起,我说得不够清楚


谢谢你的帮助。

你真的有
你的图像文件名和data1一样吗?因此,现在您的文件名返回为“data1:data2”,而不是文件名。快速而肮脏的解决方案是分割冒号上的item.value,并使用索引0作为图像源。正确的方法是返回正确的JSON,将data1和data2作为单独的属性,并在客户端对其进行格式化。不,对不起,我没有必要将代码更改为您当时拥有的代码。问题是我对javascript和JSON了解不多,我在网上找到了代码,并且它工作正常。我这样做对吗?而($data=$q->fetch()){array_push($array,$data['data1']);array_push($array2,$data['data2']);}echo json_encode($array2);你真的有
你的图像文件名和data1一样吗?因此,现在您的文件名返回为“data1:data2”,而不是文件名。快速而肮脏的解决方案是分割冒号上的item.value,并使用索引0作为图像源。正确的方法是返回正确的JSON,将data1和data2作为单独的属性,并在客户端对其进行格式化。不,对不起,我没有必要将代码更改为您当时拥有的代码。问题是我对javascript和JSON了解不多,我在网上找到了代码,并且它工作正常。我这样做对吗?而($data=$q->fetch()){array_push($array,$data['data1']);array_push($array2,$data['data2']);}echo json_encode($array2);

  require('db.php');

  $term = $_GET['term'];


  $q = $db -> prepare('SELECT data1,data2 FROM table WHERE data1 LIKE :term');

  $q -> execute(array('term' => '%'.$term.'%'));


  $array = array();

  while ($data = $q -> fetch()) {

    array_push($array, $data['data1']. ":".$data['data2']);

  }


  echo json_encode($array);

?>