0

以下のような標準のjQueryオートコンプリート設定があります。

$("input#autocomplete").autocomplete({
    source: source,
    minLength: 5 ,
    select: function( event, ui ) {
         alert(ui.item.value);
    }
});

値を選択すると、ページ内のデータテーブルが表示され、その値を検索パラメーターとして使用してデータベースからのデータが入力されます。

したがって、たとえば「RED」を選択すると、テーブルには次のようなクエリからのデータが表示されます。SELECT * FROM TABLE WHERE COLUMN='RED'

クエリは単純化されていますが、誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

2

この目的のために、例えばのエンドポイントsearchとして機能する一種のページをリクエストする必要がありますJSON

$("input#autocomplete").autocomplete({
    source: source,
    minLength: 5 ,
    select: function( event, ui ) {

      var _value = ui.item.value;

      $.post('services/populate_table.php', // endpoint URL
             { someParameterToTransmit: _value  }, // some data to transmit
             function(data) { // on complete handler
               $('.result').html(data); // populate retrieved data in any form you need
             } // on complete function
      ); // post
    } // on select (autocomplete)
}); // autocomplete

からのデータendpointもとして取得できますJSON

リクエストメソッドの詳細については、ドキュメントをご覧ください。

于 2012-08-15T11:30:32.430 に答える
0

私があなたを正しく理解しているなら、あなたは探しています$.post

たとえば、jQueryは次のようになります。

$("input#autocomplete").autocomplete({
    source: source,
    minLength: 5 ,
    select: function( event, ui ) {
        $.post("autocomplete.php", { option: ui.item.value }, function(data){
            $("table").html( data[0] );
            // sets the content of a table element to the first matched row
        });
    }
});

そして、autocomplete.phpでは、次のようなものがあります。

// DB connect

// use $_POST['option'] here for the selected option
$sth = mysql_query("SELECT ...");
$r = mysql_fetch_assoc($sth);
print $r;

ここで行うことは、ページを要求しautocomplete.php、データ(この場合は選択された値)をPOSTすることです。autocomplete.phpそのPOSTされた値を取得し、データベースを検索します(ニーズに合わせてそのクエリをカスタマイズできます)。次に、ページは一致した行の配列を出力します。これは、jQueryによって受信されたデータであり、Javascript配列としてトラバースできます。

于 2012-08-15T11:39:56.327 に答える