簡體   English   中英

基於2個輸入字段的值進行ajax調用以填充jquery自動完成

[英]ajax call based on the value of 2 input fields to populate jquery autocomplete

我被這個問題困擾了一段時間。 我想在我的ajax調用中傳遞2個參數(一種形式的2個輸入字段的值),以用於jquery自動完成(搜索基於使用輸入1和輸入2的值的mysql查詢)。 我有一些建議,但到目前為止我還沒有運氣:在這里,我的Ajax調用試圖傳遞2個參數input1和input2。 沒有出現代碼錯誤,但自動完成功能不起作用。 如果我僅使用一個參數,它將起作用。

function fillbox2(){                                                          

$('#input2').autocomplete({                                              
      source: function(request, response ){                               

          var frmStr={                                                    
            input1:$('#input1').val(),                          
            input2:$('#input2').val()                               
            requestTerm: request.term                                  
             };                                                           

      $.ajax({                                                            
      url: './cgi_temp3.cgi',                                             
      dataType: 'json',                                                   
      data:{data: frmStr},                                                
      contentType: "application/json; charset=utf-8",                     

          success: function (data) {                                      
               response ($.map( data.matches, function(item){             
                           return {                                       
                              value: item.info2,                    

                           }                                              
                       }));                                               
              }                                                           

          });                                                             
      },                                                                  

          minLength: 2,                                                   
          select: function(event, ui){                                    
          $("#prod_term").val(ui.item.value);                             
          return false;                                                   
          }                                                               

   });

這是我的處理MYSQL查詢的CGI腳本

 #!/usr/local/bin/python3                                                      

  import cgi, json                                                              
  import os                                                                     
  import mysql.connector                                                        

 def main():                                                                   
   print("Content-Type: application/json\n\n")                               
   form = cgi.FieldStorage()                                                 
   term2 = form.getvalue('input2')                                        

   term1=form.getvalue('input1')                                        

   conn = mysql.connector.connect(user='***', password='***', host='localhost', database='***') 
   cursor = conn.cursor()                                                    

 qry = """                                                                 
      SELECT name2, info2                               
      FROM table2                                                          
      join table1 ON                                                    
      info2_id=information2_id                                                  
      WHERE name2 LIKE %s AND info2_id=%s                       
"""                                                                       
cursor.execute(qry, ('%' + term2 + '%',term1))   

問題可能出在哪里?

乍一看,我想這可能是時間問題。 源函數不會等待您的ajax調用完成,因此您實際上是給它一個空白值。 嘗試在ajax成功函數中啟動自動完成功能。

function fillbox2(){                                                          
  $.ajax({
    ...
    success: function (data) {
      ...
      $('#input2').autocomplete(...);
  });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM