2016-08-14 2 views
0

ボタンをクリックすると、それはajaxによって処理され、PHPページに投稿されます。現在の問題は、PHPがフロントエンドからPOST名を認識できないことです。それは私に "NOT OK"のelse部分を投げつけ続けます。以下はスニペットです。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 
    } 
}); 
}); 
}); 

EDIT:.serialize()submit入力タイプが含まれていないように見えます。スクリプトに対するリクエストメソッドをテストするには、$_SERVER['REQUEST_METHOD']を使用して、それが"POST"に等しいことをテストできます。 dataパラメータを"btn-agree=Agree"に設定することもできます。

+0

postAgreement.phpに、私はそれをPOSTとして受け取ります。これは大丈夫ですか? –

+0

はい、POSTとして受信されます。 – bnahin

+0

しかし、私はデータ部分を追加してもまだ動作していません。それはまだ 'NOT OK'を表示しています..多分

ですか? –

0

あなたのajaxでパラメータ "data"を忘れました。 $ _POST ['btn-agree']が定義または設定されていないため、isset($ _ POST ['btn-agree'])の は常にfalseになります。

チェックこのコードまたはhttp://api.jquery.com/jquery.ajax/上のサンプルを参照してください。

$アヤックス({ タイプ: "POST"、 データ:{BTN-同意:$( '#BTN-同意')のval() }、 URL: "postAgreement.php"、 成功:関数(MSG){// 何か }、 エラー:関数(){// 何かを } });

+0

これも機能しません:( –

関連する問題