如何从标签或ID中自动完成显示结果

时间:2014-05-01 17:55:45

标签: jquery user-interface autocomplete

我从事PHP销售计划

我有一个输入来从autocomplete列表

中选择产品

我只想显示我使用product name输入的产品的搜索结果,或显示product barcode而不显示条形码的产品的搜索结果

我的源代码的PHP代码是:

$source = array();
$data = mysql_query("select * from items");
while($d = mysql_fetch_assoc($data))
{
    $array[id] = $d['id'];
    $array[value] = $d['product_name'];
    $array[lable] = $d['product_barcode'];
    array_push($source,$array);
}
$array = json_encode($source);

我的js代码是:

$('#main_item').autocomplete({
      source: <?=$array?>,
      select: function(event, ui) {
            $('.pur_items_id').last().val(ui.item.id);
            $('.item_name').text(ui.item.value);
       }
});

我需要的是,当输入barcode时,自动完成功能会显示带有该条形码的产品 不在自动填充搜索结果中显示条形码。

1 个答案:

答案 0 :(得分:0)

好的,谢谢你们每个人

我想出了一个解决方案

如果有任何方法可以改进该解决方案并使其更好,请分享

我的代码:

source = <?=$array?>;
    barcode = new Array;
    jQuery.map( source, function( n , i) {
      barcode[i] = ( n.lable );
    });
    $('#main_item').autocomplete({
          source: source,
          select: function(event, ui) {
                $('.pur_items_id').last().val(ui.item.id);
                $('.item_name').text(ui.item.value);
           }
    }).keyup(function(e,u){
        var item = $.inArray($(this).val(),barcode);
        if(item != -1)
        {
            $('.pur_items_id').last().val(source[item]['id']);
            $('.item_name').text(source[item]['value']);
        }
    });