我的表单
<form id="new-protocol-form" method="post" role="form">
<textarea name="text"></textarea>
</form>
我的jquery ajax
$('#submitProtocol').click(
function() {
$.ajax({
type: "POST",
url: "newProtocol.php",
data: $('#new-protocol-form').serialize(),
success: function() { alert{'ok'} },
error: function() { alert('error'); }
});
}
);
我的newProtocol.php
<script>
alert(<?php echo $_POST['text']; ?>);
</script>
显示了由ajax 'success‘方法触发的“ok”文本的警报窗口,但我无法从newProtocol.php文件中获得带有newProtocol.php值的警报窗口。javascript控制台中没有错误。
发布于 2015-03-02 18:34:04
您需要使用$_POST['text']
。你在不该出现的地方用括号。
此外,由于您使用的是AJAX,所以您可能不想导航到另一个页面。如果不阻止默认行为,成功功能中的警报将永远不会触发。
newProtocol.php
<?php
echo $_POST['text'];
?>
jQuery
$('#submitProtocol').click(function(event) {
event.preventDefault(); // stop the default click behavior
$.ajax({
type: "POST",
url: "newProtocol.php",
data: $('#new-protocol-form').serialize(),
success: function(data) {
console.log(data); // show the text being returned
},
error: function() { console.log('error'); }
});
}
);
另外,用于获取返回值和解决问题的alert()
。
发布于 2015-03-02 18:43:07
首先,$_POST
不是一个函数,而是一个数组。所以应该是$_POST['text']
。另外,
<script>
alert(<?php $_POST('text'); ?>);
</script>
不会像您预期的那样创建警报,因为异步请求不会在目标页面中运行任何javascript。
由于您正在尝试测试AJAX是否正常工作,所以最好的方法是检查从该请求返回的日期。示例:
//...
success: function(data) { console.log(data) },
//...
https://stackoverflow.com/questions/28816901
复制相似问题