值数据库行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 codeDEMO2-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事件,以便可以为每个项目使用特定数据,或者根据要单击的项目过滤数据。

09-25 21:24