解析jQuery自动完成

问题描述:

我已经从MySQL查询生成了一些数据,我想用两个东西来做。数据是一个名称和ID的数组。解析jQuery自动完成

首先,我想使用jQuery自动完成的名称部分,以便名称可以在字段中选择。其次,我想在自动填充中选择将选定项目的ID放入隐藏字段的选项。

这里是我的JQuery:

$("#contact").autocomplete(
       source: function(request, response){ 
           $.ajax({ 
             url: "ajax/grabdata.php?", 
             type: "GET", 
             data: request, 
             success: function (data) { 
              response($.map(data, function (el) { 
               return { 
                label: el.item.name, 
                value: el.item.id 
               }; 
              })); 
             } 
            }); 
          }, 
          width: 260, 
          matchContains: true, 
          selectFirst: false, 
          select: function(event, ui){ 
            $('#contact').val(ui.label); 
            $('#id').val(ui.value); 
          } 
        }); 

这里是我抓住了数据在PHP(grabdata.php):

 $sql = "SELECT DISTINCT contacts.id, contacts.firstname, contacts.lastname FROMcontacts WHERE (firstname LIKE '%$q%' OR lastname LIKE '%$q%')"; 
     $rsd = mysql_query($sql); 
     while($rs = mysql_fetch_array($rsd)) { 
     $kdata[] = array(
      "name" => $rs['firstname'].' '.$rs['lastname']."\n", 
      "id" => $rs['ID']."\n", 
    ); 
     $dataset[] = $kdata; 
     } 

我能得到的数据,但我无法解析它变成我想要的。该名称应该在自动填充字段中可选,并且应根据所选名称填写ID。

据我所看到的,你是不是使用select方法的参数,你应该:

select: function(event, ui){ 
     $('#contact').val(ui.item.label); 
     $('#id').val(ui.item.value); 
    } 

你缺少了“.item”。检查文档:http://jqueryui.com/autocomplete/#remote

+0

我的记谱法的其余部分是否可以吗? – user1230790 2013-03-12 12:59:18

+0

我无法讲述PHP部分,但自动完成似乎没问题。 – Coz 2013-03-16 11:22:43