0

私は 2 つのことをしたい 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 に答える