2011-11-28 66 views
10

jQuery UI site(教職員源):jQuery UI自動完成:如何發送發佈數據?

$("#birds").autocomplete({ 
    source: "search.php", 
    minLength: 2, 
    select: function(event, ui) { 
     log(ui.item ? 
      "Selected: " + ui.item.value + " aka " + ui.item.id : 
      "Nothing selected, input was " + this.value); 
    } 
}); 

所以我看有沒有選擇如何使後數據"search.php" Ajax請求。

但我需要做的是送從一個輸入字段一些過濾器(目前場: 城市,在前場:國家)。

如何做到這一點?

謝謝!

回答

18

嘗試改變源是它使用.post的$方法:

$("#birds").autocomplete({ 
    source: function (request, response) { 
    $.post("search.php", request, response); 
    }, 
    ... 
+0

OK,我會嘗試。謝謝 –

+0

它的工作?我嘗試,但對我來說沒有工作。謝謝! –

+0

爲我工作就像一個魅力!謝謝! – Jagger

3
$("#birds").autocomplete({ 
source: function (request, response) { 
    $.ajax({ 
    type: "POST", 
    url:"search.php", 
    data: request, 
    success: response, 
    dataType: 'json' 
}); 
    } 
}, {minLength: 3 }); 

//------------------------- 
//search.php - example with request from DB 

// 


$link = mysql_connect($mysql_server, $mysql_login, $mysql_password) 
     or die("Could not connect: " . mysql_error()); 
    mysql_select_db($mysql_database) or die("Could not select database"); 
    mysql_set_charset('utf8'); 

$req = "SELECT mydata FROM $mysql_table WHERE mydata LIKE '".$_REQUEST['term']."%' ORDER BY mydata ASC"; 
$query = mysql_query($req); 

while($row = mysql_fetch_array($query)) 
{ 
    $results[] = array('label' => $row['mydata']); 
} 


echo json_encode($results); 
?> 
2

我有同樣的需求,並從計算器沒有單一的例子是正常工作。

通過測試不同勢作者的貢獻,在這裏調整,有下面的例子是最有可能的是什麼人會在自動完成該

  1. 發送POST請求尋找。

  2. 不需要調整主自動完成UI。

  3. 發送多個參數進行評估。

  4. 從數據庫PHP文件檢索數據。

所有功勞都是我用他們的樣本答案 作出這個工作樣本的許多人。

 $("#employee_name").autocomplete({ 
     source: function (request, response) { 
     $.ajax({ 
     type: "POST", 
     url:"employees.php", 
     data: {term:request.term,my_variable2:"variable2_data"}, 
     success: response, 
     dataType: 'json', 
     minLength: 2, 
     delay: 100 
      }); 
     }}); 
+0

美麗,謝謝! – mcraen

0

以下工作對我很好。我需要一些自定義的數據,所以我把搜索「術語」 term: request.term出的要求如下:

jQuery('.some-autocomplete').autocomplete({ 
    source: function(request, response) { 
     jQuery.post(ajaxurl, {action: 'some_content_search', type: type, term: request.term}, response, 'json'); 
    }, 
    minLength: 2, 
    ...