当我单击一个按钮时,它由ajax处理,然后发布到PHP页面。目前的问题是PHP无法从前端识别POST名称。它一直把我的其他部分扔给我" Not OK"。以下是摘录。
PHP部分
if (isset($_POST['btn-agree'])){ echo "OK<br />"; } else { echo "NOT OK<br />"; }
结束PHP部分
$(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;
答案 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(){ //做一点事 } });