我有一个包含2个输入字段的表单。我想在输入2上使用输入1作为过滤器实现自动完成。所以我需要将两个参数传递给我的cgi脚本。我有这样的问题。我可以单独传递它们但不能同时传递它们。在这里我尝试了:
function fillbox2(){
$('#input2').autocomplete({
source: function(request, response ){
var frmStr = {input1:$('#input1').val(),input2:$('#input2').val()};
$.ajax({
url: './cgi_temp2.cgi',
dataType: 'json',
data:{frmStr:request.term},
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){
$("#input2).val(ui.item.value);
return false;
}
});
}
问题在哪里?它来自我的ajax调用中的“data:”还是“success:”?
答案 0 :(得分:0)
我可以看到您在“frmStr”中保存输入数据 但是在你的ajax请求中,你这样做了 数据:{frmStr:request.term},这意味着您使用变量“frmStr”作为数据和后端的关键您将拥有frmStr为关键。 你在ajax中的数据看起来应该是那样的
var frmStr = {
input1:$('#input1').val(),
input2:$('#input2').val(),
requestTerm: request.term
};
然后在ajax
data:{data: frmStr},
这应该可以将数据发送到后端