我在html“form”中有两个提交按钮:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ajax.js"></script>
<input type="text" name="field1" id="field1" />
<input type="text" name="field2" id="field2" />
<form id="form1" action="" method ="post">
<input type="submit" value="check data" id="checkdata" name="checkdata" /><p>
<input type="submit" value="download" id="download" name="download" /><p>
我必须通过ajax调用从“同一页面”中的两个单独的“php”代码获取按钮点击的查询结果。我有第一个按钮的脚本,但我无法为第二个按钮分配查询,该按钮必须引用另一个PHP代码:
$(document).ready(function(){
$("#checkdata").click(function(){
var field1 = $("#field1").val();
var field2 = $("#field2").val();
var datastr ='&field1=' + field1 + '&field2=' + field2;
$("#response").css("display", "block");
$("#response").html("setting parameters... ");
$("#response").fadeIn("slow");
setTimeout("send('"+datastr+"')",2000);
return false;
});
});
function send(datastr){
$.ajax({
type: "POST",
url: "some_php_code.php",
data: datastr,
cache: false,
success: function(html){
$("#response").fadeIn("slow");
$("#response").html(html);
setTimeout('$("#response").fadeOut("slow")',2000);
}
});
}
你可以给我一些暗示,或者还有其他方法吗?
(我已经检查过你可能会引用我的所有相关问题。 像这个只与一个ajax调用有关的问题 jQuery submit ajax form with 2 submit buttons)
答案 0 :(得分:1)
只需添加以下功能即可。
$(document).ready(function(){
$("#download").click(function(){
var field1 = $("#field1").val();
var field2 = $("#field2").val();
var datastr ='&field1=' + field1 + '&field2=' + field2;
$("#response").css("display", "block");
$("#response").html("setting parameters... ");
$("#response").fadeIn("slow");
setTimeout("send('"+datastr+"')",2000);
return false;
});
});
或更好:
$(document).ready(function(){
$("#checkdata").click(function(){
SendData();
});
$("#download").click(function(){
SendData();
});
});
function SendData() {
var field1 = $("#field1").val();
var field2 = $("#field2").val();
var datastr ='&field1=' + field1 + '&field2=' + field2;
$("#response").css("display", "block");
$("#response").html("setting parameters... ");
$("#response").fadeIn("slow");
setTimeout("send('"+datastr+"')",2000);
return false
}
HTH