在我的Web应用程序中,我有一个通过查询MySQL生成的选择菜单,我想在其中显示一些供应商的信息。在内部我还需要拥有供应商的ID(这样如果用户点击行而不是显示街道地址),但我不希望向用户显示该ID。这就是我用php尝试过的服务器端:
$value = $value."<p style='display:none;'>".$single["vendor_id"]."</p>";
但它不起作用。为该行生成的HTML是:
<li class="ui-menu-item" id="ui-id-6" tabindex="-1">
PANNA - LE MUCCHE DI GUGLIELMO - (LATTICINI) - LE MUCCHE
<p style='display:none;>1</p>
(33.543 Km)
</li>
这是我从php获得的:
$ris2[] = array(
"value" => $value,
"id" => $id,
"venditore_id" => $single['venditore_id']
);
这是Ajax调用客户端:
$( "#tags" ).autocomplete({
minLength: 2,
source: function (request, response) {
$.ajax({
url: "http://lainz.softwebsrl.it/ajax/autocompletecibo",
dataType: "json",
crossDomain: true,
type : 'post',
data:
{
valore: request.term+","+localLocation,
},
success: function (data)
{
console.log(data);
response(data);
}
});
},
这是Ajax所针对的autocompletecibo.phtml
:
<?php
$data = $_GET;
$data1 = $_POST;
json_encode($data);
?>
我真的不知道在哪里检索那个关联数组php ...我只知道数组里面的所有内容都会显示为value
元素中的行。
答案 0 :(得分:0)
如果您无法修改生成的HTML,您可以在将任何侦听器或插件绑定到它之前通过jQuery更改内容:
$('li.ui-menu-item').each(function(i, elm) {
elm = $(elm);
var p = elm.find('p');
elm.data('id', p.text());
p.remove();
});
然后,所有ID都作为数据属性存储在每个<li>
元素中。