值数据库行units
中的salam和salavat值:[此值由json_encode()
插入]
萨拉姆
[{“ name_units”:“ salam”,“ price_units”:“ 74,554”,“ checkbox_units”:[“ minibar”,“ mobleman”]},{“ name_units”:“ mokhles”,“ price_units”:“ 4,851,269”, “ checkbox_units”:[“ mobleman”,“ tv”]},{“ name_units”:“ fadat”,“ price_units”:“ 85,642”,“ checkbox_units”:[“ minibar”,“ mobleman”,“ tv”]} ]
萨拉瓦特
[{“ name_units”:“ chaker”,“ price_units”:“ 5,452”,“ checkbox_units”:null},{“ name_units”:“ khobe”,“ price_units”:“ 5,452,545”,“ checkbox_units”:[[minibar“ ,“民兵”]}]
在示例中,请执行以下工作:
示例:DEMO1- in here work my code和DEMO2-in here just is for show all codes
第一。请在输入中插入值:sala =>具有“拖曳”结果,请单击每个结果:salam或salavat->单击后,您将看到五个输出=> salam&mokhles&fadat | chaker&khobe(如果必须具有三个值,因为我们单击了salam => salam&mokhles&fadat一词)
第二。请插入值:salam =>这有一个结果,请单击结果(salam)->单击=> salam&mokhles&fadat,您会看到“三”的输出
无论如何,我都希望结果搜索为“五个”或“三个”值或“等等”,获取与单击的单词相关的值name_units
。
$('.auto_complete').keyup(function () {
var dataObj = $(this).closest('form').serialize();
$.ajax({
type: "POST",
dataType: 'json',
//url: 'http://binboy.gigfa.com/admin/tour_foreign/auto_complete',
url: 'auto_complete',
data: dataObj,
cache: false,
success: function (data) {
var id_name = $('.list_autobox_hotel').attr('id');
$('.list_autobox_hotel').show().html('');
if (data == 0) {
$('.list_autobox_hotel').show().html('<p><b>there is no</b></p>');
} else {
$.each(data, function (index, value) {
$('<p id="' + value.name + '">' + value.name + '</p>').appendTo('.list_autobox_hotel');
});
//////////////////////*HERE//////////////////////
$('.list_autobox_hotel p').click(function (e) {
e.preventDefault();
var ac = $(this).attr('id');
$.each(data, function (index, value) {
$.each(value.units, function (bu, key) {
alert(key.name_units);
});
});
$(this).remove();
return false;
});
//////////////////////HERE*//////////////////////
$('body').click(function () {
$(".list_autobox_hotel p").hide().remove();
$('.auto_complete').val('');
$('.list_autobox_hotel').show().html('');
$('.list_autobox_hotel').css('display', 'none');
});
}
},
"error": function (x, y, z) {
// callback to run if an error occurs
alert("An error has occured:\n" + x + "\n" + y + "\n" + z);
}
});
});
更新:
对于bin,我这样做的原因是:(但是这不起作用,仍然存在相同的问题)
$('.list_autobox_hotel p').bind("click", function (e) {
e.preventDefault();
var ac = $(this).attr('id');
$.each(data, function (index, value) {
$.each(value.units, function (bu, key) {
alert(key.name_units);
});
});
$(this).remove();
return false;
});
我不了解
"filter the data depending on what item you click on"
,也不知道怎么回事!?更新2
这是真的吗? (但这不起作用,并且出现警报:
undefined
)$('.list_autobox_hotel p').bind("click", function (e) {
e.preventDefault();
var ac = $(this).attr('id');
var ok = $.grep(data, function (e) {
return e.name == ac;
}).units;
alert(ok);
$(this).remove();
return false;
});
最佳答案
那是因为您的代码不在乎您单击哪个项目,它始终会显示所有数据。
您应该在添加项目的循环内绑定click事件,以便可以为每个项目使用特定数据,或者根据要单击的项目过滤数据。