2012-08-27 36 views
2

我有两个在HTML“格式”提交按钮:形式提交的引用按钮“不同” AJAX调用

<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> 

这我得从两个独立的“PHP”代码按钮点击的查询结果在“同一页面”通过ajax调用。我对第一个按钮的脚本,但我有麻烦分配的查询必须被提及的另一种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相关问题)

+2

** **从未传递一个字符串'的setInterval()'或'的setTimeout()'。这样做与使用'eval()'一样糟糕,只要使用变量,就会导致不可读的和可能不安全的代码,因为您需要将它们插入到字符串中,而不是传递实际变量。正确的解决方案是'setInterval(function(){/ * your code *)},msecs);'。 'setTimeout()'同样适用。如果你只想调用一个没有任何参数的函数,你也可以直接传递函数名:'setInterval(someFunction,msecs);'(注意函数名后面有** no **'()') – ThiefMaster

+2

我没有看到您尝试为id为'download'的按钮设置点击处理程序的位置。你有一个'checkdata'按钮,所以它会是类似的,我会想象的。 – MrOBrian

+0

@ThiefMaster是的,这是正确的..我不会想到这件事现在它的作品..你是最好的人! – pasha

回答

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 
} 

心连心