2016-08-14 82 views
0

當我點擊一個按鈕時,它由ajax處理,然後發佈到PHP頁面。目前的問題是PHP無法從前端識別POST名稱。它不斷拋出我「不好」的其他部分。以下是摘錄。檢查POST的名稱

PHP部分

if (isset($_POST['btn-agree'])){ echo "OK<br />"; } else { echo "NOT OK<br />"; } 

END PHP部分

$(function() { 
 
$("#btn-agree").click(function(e){ 
 
\t e.preventDefault(); 
 
$.ajax({ 
 
    type: "POST", 
 
    url: "postAgreement.php", 
 
    success: function(msg){ 
 
     //do something 
 
    }, 
 
    error: function(){ 
 
     //do something 
 
    } 
 
}); 
 
}); 
 
});
<form id="agree-form" action="/" method="post" role="form"> 
 
<input type="submit" name="btn-agree" id="btn-agree" value="Agree"> 
 
</form>

回答

0

您還沒有指定的數據發送到服務器。使用data參數和serialize表單。

$(function() { 
$("#btn-agree").click(function(e){ 
    e.preventDefault(); 
$.ajax({ 
    type: "POST", 
    url: "postAgreement.php", 
    data: $('#agree-form').serialize(), 
    success: function(msg){ 
     //do something 
    }, 
    error: function(){ 
     //do something 
    } 
}); 
}); 
}); 

編輯:它看起來像.serialize()不包括submit輸入類型。要測試腳本的請求方法,可以使用$_SERVER['REQUEST_METHOD']並測試它等於"POST"。您也可以將data參數設置爲"btn-agree=Agree"

+0

在postAgreement.php中,我收到它作爲POST是好的? –

+0

是的,它將作爲POST收到。 – bnahin

+0

但是在加入數據部分後它仍然不工作。它仍然顯示'NOT OK'..也許是

? –

0

你在ajax上忘記了參數「data」。 isset($ _ POST ['btn-agree'])上的 將始終爲假,因爲$ _POST ['btn-agree']未定義或設置。

檢查該代碼,或上http://api.jquery.com/jquery.ajax/樣品:

$就({ 類型: 「POST」, 數據:{BTN-同意:$( '#BTN-同意')VAL() }, 網址: 「postAgreement.php」, 成功:函數(MSG){// 做一些 }, 錯誤:函數(){// 做一些 } });

+0

這也不工作:( –