0

我从 MySQL 查询中生成了一些数据,我想做两件事。数据是名称和 ID 的数组。

首先,我想将名称部分用于 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 应该根据选择的名称填写。

4

1 回答 1

0

据我所见,您没有按照应有的方式使用 select 方法参数:

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

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

于 2013-03-12T12:23:29.267 回答