2012-08-27 66 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 
} 

心連心