2011-11-28 55 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, 
    ...