2011-06-27 40 views
1

我發現了一篇關於jqueryui自動完成從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的

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

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

現在我想給類型0的值states.php所以MySQL查詢可能就像

"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/

第三變型中,回調,提供最大的靈活性,並且可以用於將任何數據源連接到自動填充。該回調獲得兩個參數:

請求對象,具有一個名爲「term」的單個屬性,該屬性引用文本輸入中當前的值。例如,當用戶在城市字段中輸入「新喲」時,自動完成詞將等於「新喲」。

一個響應回調,它需要一個參數包含要提示給用戶的數據。這些數據應根據提供的術語進行過濾,並且可以採用上述任何用於簡單本地數據(String-Array或帶有標籤/值/兩個屬性的對象數組)的格式。在請求期間提供自定義源回調以處理錯誤時,這很重要。即使遇到錯誤,您也必須始終調用響應回調。這可確保小部件始終具有正確的狀態。

+1

感謝@Dogbert的回答你幾乎寫的,但我已經到了一個小的修改狀源:功能(rqeuest){ ($ .getJSON( 「states.php」,{項:rqeuest.term,COUNTRYNAME :$(「#typeo」)。val()})); }現在數據出現在螢火蟲的控制檯上,但不要顯示下拉菜單的原因。你可以幫我嗎? – DAKSH