2011-06-27 13 views
1

jqueryui auto completeに関する素晴らしい記事がhereから見つかりました。これは、jsonを使用してmysqlからデータを取得する方法を示しています。それは完璧に働いています。しかし、私は以下のような可変の値を送る必要があります。追加変数jqueryuiオートコンプリートを渡す

のindex.php

<form> 
<select name="typeo" id="typeo" class="select" title="Select Country from List"> 
    <option>None</option> 
    <option>US</option> 
<option>UK</option> 
</select> 

<input type="text" id="state" name="state" /> <input readonly="readonly" type="text" id="abbrev" name="abbrev" maxlength="2" size="2"/></p> 
    <input type="submit" name="submit" value="Submit" /></p> 
そして jqueryのは今、私は、MySQLのクエリようstates.phpにtypeoの値を送信したい
$('#abbrev').val(""); 

     $("#state").autocomplete({ 
      source: "states.php", 
      minLength: 2, 
      select: function(event, ui) { 
       $('#state_id').val(ui.item.id); 
       $('#abbrev').val(ui.item.abbrev); 
      } 
     }); 
    }); 

です可能性があります

"SELECT statename, statecode FROM states where country='$typeoValue' AND statename LIKE '%$states%'" 

どうやってtypeoの値を送ることができますか?誰でも私を助けてくれますか?おかげさまで

答えて

3

sourceにはcallback引数を使用する必要があります。

このようなものは動作しません(テストされていません)。この約

$('#abbrev').val(""); 

     $("#state").autocomplete({ 
      source: function(term, callback) { 
       callback($.getJSON('states.php', {states: term, typeo: $("#typeo").val()})); 
      }, 
      minLength: 2, 
      select: function(event, ui) { 
       $('#state_id').val(ui.item.id); 
       $('#abbrev').val(ui.item.abbrev); 
      } 
     }); 
    }); 

詳しい情報は、http://jqueryui.com/demos/autocomplete/

に第三の変形、コールバックで最も柔軟性を提供し、オートコンプリートに任意のデータソースに接続するために使用することができます。コールバックには次の2つの引数があります。

"term"という1つのプロパティを持つリクエストオブジェクトで、現在テキスト入力にある値を参照します。たとえば、ユーザーが都市のフィールドに「new yo」と入力すると、オートコンプリートの用語は「new yo」に等しくなります。

応答コールバックは、単一の引数にユーザーに提案するデータが含まれることを前提としています。このデータは、指定された用語に基づいてフィルタリングされ、単純なローカルデータ(ラベル/値/両方のプロパティを持つString-ArrayまたはObject-Array)について前述したいずれかの形式にすることができます。要求中にエラーを処理するためにカスタムソースコールバックを提供する場合は重要です。エラーが発生した場合でも、必ず応答コールバックを呼び出す必要があります。これにより、ウィジェットは常に正しい状態になります。機能(rqeuest){ ($ .getJSON( "states.php"、{用語:rqeuest.term、COUNTRYNAMEあなたはほとんど書きましたが、私は元のように作られた小さな変更しなければならなかった返信用

+1

おかげ@Dogbert :$( "#typeo")。val()})); }データがFirebugのコンソールに表示されますが、ドロップダウンが表示されない理由はありません。手伝って頂けますか? – DAKSH

関連する問題