jQuery UI自动完成:如何发送帖子数据?

时间:2011-11-28 18:18:29

标签: jquery-ui jquery-ui-autocomplete

来自jQuery UI site(来源):

$( "#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请求。

但我需要这样做才能从之前的输入字段发送一些过滤器(当前字段: city ,上一个字段: country )。

怎么做?

谢谢!

5 个答案:

答案 0 :(得分:18)

尝试将源更改为使用$ .post的方法:

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

答案 1 :(得分:5)

$( "#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 :(得分:2)

我有同样的需求,stackoverflow没有一个例子正常工作。

通过测试不同作者的贡献并在这里和那里进行调整,以下示例很可能是任何人在自动完成中寻找的

  1. 发送POST请求。

  2. 不需要调整主自动完成功能UI。

  3. 发送多个参数进行评估。

  4. 从数据库PHP文件中检索数据。

  5. 所有信用都归功于我使用他们的样本答案的许多人 制作这个工作样本。

            $( "#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
                });
            }});
    

答案 3 :(得分:0)

以下对我来说效果很好。我需要一些自定义数据,所以我拉了搜索" term"请求中的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,
    ...

答案 4 :(得分:0)

实际上,您可以使用 type:“ post”

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