【问题标题】:jQuery UI autocomplete: how to send post data?jQuery UI 自动完成:如何发送帖子数据?
【发布时间】:2011-11-28 18:18:29
【问题描述】:

来自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 );
    }
});

所以我看到没有选项如何使用 post data"search.php" 发出 ajax 请求。

但我需要这样做以从以前的输入字段(当前字段: 城市,上一个字段:国家)。

怎么做?

谢谢!

【问题讨论】:

    标签: jquery-ui jquery-ui-autocomplete


    【解决方案1】:

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

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

    【讨论】:

    • 像魅力一样为我工作!谢谢!
    【解决方案2】:
    $( "#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);
    ?>
    

    【讨论】:

      【解决方案3】:

      我也有同样的需求,但 stackoverflow 中没有一个示例可以正常工作。

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

      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
                  });
              }});
      

      【讨论】:

        【解决方案4】:

        以下内容对我来说效果很好。我需要一些自定义数据,所以我从请求中提取了搜索“术语”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,
            ...
        

        【讨论】:

          【解决方案5】:

          实际上,您可以使用 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 );
              }
          });
          

          【讨论】:

          猜你喜欢
          • 2019-03-29
          • 2014-10-19
          • 1970-01-01
          • 2011-02-21
          • 2018-02-16
          • 1970-01-01
          • 2014-10-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多