javascript - 从 jquery 自动完成中获取不同的名称

标签 javascript jquery

我使用此函数来自动完成输入值

<input type="text" id="product_name">

$( '#product_name' ).autocomplete({
  source:'autocomplete.php',
  minLength:2,
  select: function(event,ui){
    $('#product_name').val( ui.item.name );
  }
});

但行

$('#product_name').val( ui.item.name );

不起作用...

从 php 中,我存储在 json 中,“值”是具有不同属性的产品名称,而在“名称”中,仅存储产品名称

然后,当我用 2 位数字搜索时,结果如下

product1 - qt:0 - price:20
product2 - qt:4 - price:7
product3 - qt:3 - price:11

当我选择时,我只想使用存储在 ui.item.name

中的名称更新我的输入

这是我的 autocomplete.php

$sql = "SELECT name, CONCAT (quantity,' - ',name,' - ',price) AS value
    FROM `product` ";

$res= $db->query($sql);
while ($r = $res->fetch()) {
  $a_json_row["name"] = r['name'];
  $a_json_row["value"] = $r['value'];
  array_push($a_json, $a_json_row );
}

echo json_encode($a_json);
flush();

从 autocomplete.php 返回的 Json 是:

 [{
  "name": "MOCCOLO 60X165",
  "value": "[12] - MOCCOLO 60X165 : 4.00"
  }, {
   "name": "MOCCOLO 80X150",
   "value": "[19] - MOCCOLO 80X150 : 6.50"
  }, {
   "name": "MOCCOLO 80X200",
   "value": "[69] - MOCCOLO 80X200 : 8.00"
 }]

这是我搜索的时候 enter image description here

这是我选择的时候 enter image description here

但我想要

enter image description here

最佳答案

首先,你的 php 有问题。你的IDE/编辑器应该警告这样一个简单的错误。您需要投资更好的工具..

$sql = "SELECT name, CONCAT (quantity,' - ',name,' - ',price) AS value
FROM `product` ";

$a_json = [];
$res    = $db->query($sql);
while ($r = $res->fetch()) {
  $a_json[] = [
      "name"  => $r['name'],
      "value" => $r['value']
  ];
}

header('Content-type: application/json');
echo json_encode($a_json);
flush();

那么,你的 JS 应该是这样的:

$('#product_name').autocomplete({
  source: "autocomplete.php",
  minLength: 2,
  select: function(event, ui) {
    $('#product_name').val(ui.item['name']);
    return false;
  }
});

工作中example .

关于javascript - 从 jquery 自动完成中获取不同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41360099/

相关文章:

javascript - 使用javascript获取鼠标悬停下的所有div

javascript - 如何使用 Javascript 变量作为 CSS 宽度的值?

javascript - 在 localStorage 中存储变量太慢

javascript - 如何在发布前设置TextBox的文本值?

html - $.post 在 jquery 中动态添加按钮后如何触发点击处理程序

javascript - 如何使用文件系统访问 API 在 Web 浏览器中递归读取本地文件和目录

javascript - 我可以选择没有名称或 ID 的输入值吗?

jquery - 加载并确认加载所有资源、脚本 html/jquery

jquery - 使 jquery :Contains accent insensitive

javascript - 使用 jquery 更改表值