2014-01-16 75 views
0

我有這個腳本:接收阿賈克斯在PHP不形

<script> 
var request; 
$("#foo").click(function(event){ 
    request = $.ajax({ 
     url: "/votesHandler.php", 
     type: "post", 
     data: "true" 
     }); 
     request.done(function (response, textStatus, jqXHR){ 
      alert("Voted!"); 
     }); 
     request.fail(function (jqXHR, textStatus, errorThrown){ 
      alert(
       "Oops, something went wrong" 
      ); 
     }); 
     request.always(function() { 
      alert("Done."); 
     }); 
</script> 

而我正在試圖做的是在點擊#foo元素時發出「真」到服務器。我以前只用過幾次AJAX,每次都是用表單。問題是我需要在PHP中接收POST請求(使用$_POST['foo']),但這次輸入不是文本輸入的名稱。如何在沒有表格的情況下將data轉換成$_POST

+0

請回到我前幾天回答了這個問題,並告訴我它是否解決您的問題。 –

+0

找不到它,但另一個答案。是的,我也檢查了我的其他問題的答案(抱歉)。 – trop

回答

2

當您發送到您的網址時,您可以指定數據的關鍵。

$.ajax({ 
data: {foo: 'true'} 
}); 

要找回它使用

$_POST['foo'] 
1

把它作爲:

data: 'foo_clicked=1', 

data: 'foo_clicked=' + somevarname, 

在PHP端:

$recd = $_POST['foo_clicked']; 
if ($recd == 1) { 
    //do what you need to do 
} 
0

試試這個:

$("#form").submit(function (e) { 
    var postData = $(this).serializeArray(); 
    var formURL = $(this).attr("action"); 
    console.log(formURL); //your form action 
    $.ajax({ 
     url: formURL, 
     type: "POST", 
     data: postData, 
     beforeSend: function() { 
      //do 
     }, 
     success: function (data, textStatus, jqXHR) { 
      console.log('success data'); 
      //whatever 

     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      //if fails 
      console.log('fail'); 
     } 

    }); 
    e.preventDefault(); //STOP default action 
});