检查POST

时间:2016-08-14 03:52:22

标签: javascript php jquery

当我单击一个按钮时,它由ajax处理,然后发布到PHP页面。目前的问题是PHP无法从前端识别POST名称。它一直把我的其他部分扔给我" Not OK"。以下是摘录。

PHP部分

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

结束PHP部分

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

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

您忘记了ajax上的参数“data”。 on isset($ _ POST ['btn-agree'])将始终为false,因为$ _POST ['btn-agree']未定义或设置。

检查此代码或查看http://api.jquery.com/jquery.ajax/上的示例:

$。AJAX({     类型:“POST”,     数据:{btn-agree:$('#btn-agree')。val()},     url:“postAgreement.php”,     成功:函数(msg){         //做一点事     },     错误:function(){        //做一点事     } });