2012-01-16 18 views
0

私は1日中jQueryのオートコンプリートに苦労しています。 jQuery UIオートコンプリートをmysqlデータベースに接続する方法を理解できません。私はどのようなphpファイルのように見えるかわからない、どのようにリクエストをphpなどに送ったのですか?jQueryサイトのデモとドキュメントでは、リモートデータソースの簡単な例がソースはsource:source: "search.php"です。では、search.phpが入力ボックスに入力した内容をどのように知っていますか? search.phpに添付されたクエリはありません:/私はjsonが使用されていることに気付きました。私は混乱していますし、結果のないダースメソッドを試しました。私が必要とするのは、テキストボックスに入力したテキストを含む都市名の単純なオートコンプリートです。jQuery UIオートコンプリートwith mysqlデータベース

私のDBは次のようになります。私は、例えばテキストボックスに入力したテキストが含まれている

table_cities: 
------------- 
id: -city id 
name: -city name 

と私は私の都市を表示するオートコンプリートを必要とします

"PO" ... "リバプール" "ポーツマス" に

html 
---- 
<input type="text" id="cities" /> 

js 
-- 
$("#cities").autocomplete({ 
... 

感謝を発生します!

答えて

2

id/valueオブジェクトのJSONエンコードされた配列を返すだけで済みます。また、オートコンプリートプラグインは、現在入力ボックスにあるものを含む "q"という名前のgetパラメータを送信します。の配列を作成した結果をループ -

$autocomplete_value = mysql_real_escape_string($_GET["q"]); 
$sql = "select id, name from table_cities where name LIKE '%$autocomplete_value%'"; 
$query = mysql_query($sql); 

$results = array(); 
while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) { 
    array_push($results, array('id' => $row['id'], 
           'value' => $row['name'])); 
} 
echo json_encode($results); 

あなたが使用している場合がありますが、パターンは同じであるべきものは何でもPHPフレームワークにそれを適応させる必要があります:働くだろうsearch.phpファイルの簡単な例'id'と 'value'オブジェクト、そしてそれをエンコードするjson。

編集:大文字小文字の比較(大文字と小文字の区別が無視される)とその他の拡張機能を実行するようにSQLを更新することができますが、少なくとも正しい方向に進むはずです。

+0

ありがとう、この問題の半分を解決しました。問題の他の半分はjQueryです。単純なjqueryでPHPコードを使用したとき、戻り値は都市だけでなく、すべての都市でした:$( "#cities")。オートコンプリート({ 源: "スクリプト/ loc.php"、 はminLength:4、 は選択:機能(イベント、UI){ アラート(ui.item.id);} を}); – woopata

+0

Firebug for Firefoxを参照するか、Safari/Chromeの開発モードでビルドしてください。ajax呼び出しをデバッグして、サーバーとの間で送受信される内容を確認するのに最適です。 – Parrots

0

私はjQueryオートコンプリートを使用していませんが、すでにボックスに入力されているデータをAJAXコールをWebサーバーに送り返すことは明らかです。 Webサーバーは、適切と思われるデータベースに照会し、表示されるべき結果を返します。

クエリはjQueryプラグインの一部ではありません。あなたはそれをあなた自身で書く必要があります。

+0

はい、いくつかの例ではajaxが使用されていますが($ .ajax ..)、jQuery UIのデモとドキュメント - >リモートデータソースの例でどのように動作しているのか分かりません。その例のソースを見るためにクリックすると、ソースだけがあります: "search.php" $ .ajaxなし.. – woopata

+0

'search.php'はフォーム値を受け入れると思います; phpファイルが呼び出されると、フォームの値を取得し、データベースに問い合わせ、結果を表示する呼び出し側(この場合はプラグイン)に結果セットを返します。どの部分が問題を抱えていますか? –

関連する問題