[英]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.