[英]jquery ajax not passing data to php?
我试图将javascript Date对象传递给php,但是当我转储 $ _POST时,它将返回空数组或字符串。 我在同一文件中执行此操作,因此在file.php中是php代码和javascript代码。 javascript也显示一切正确,因为它会警告成功功能。
<?php
var_dump($_POST); //returns empty array
var_dump($_POST['zone']); //returns null
?>
<script type="text/javascript">
var date = new Date();
$.ajax({
type:'POST',
data: {zone : date},
success: function(data){
alert("test"); //this runs normally
},
error: function(xhr, textStatus, error){
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
}
});
</script>
这是我在phpfiddle.org上测试过的一些代码:
<?php
if(isset($_POST['zone'])){
// Only runs when there is a Post for 'zone'
//var_dump($_POST);
echo $_POST['zone'];
} else{
?>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
</head>
<body>
<script type="text/javascript">
var date = new Date();
function postZone(){
$.ajax({
type:'POST',
data: {zone : date},
success: function(data){
console.log(data);
//alert("test"); //this runs normally
$("#zone").html(data.substring(data.indexOf("(")) + " is client TimeZone.");
},
error: function(xhr, textStatus, error){
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
}
});
}
postZone();
</script>
Running Post.
<div id='zone'></div>
</body>
</html>
<?php
}
?>
这是我在发布结果中看到的内容:
array(1) {
["zone"]=>
string(57) "Mon Jan 18 2016 09:44:17 GMT-0800 (Pacific Standard Time)"
}
string(57) "Mon Jan 18 2016 09:44:17 GMT-0800 (Pacific Standard Time)"
添加if
语句有助于避免混淆结果。 如果要包含此代码,则不确定如何执行此操作。 正如我在评论中说的那样,您没有在Post中传递Date对象,因此您应该将所需的细节传递给PHP。
编辑
更新的代码。 现在,您可以在控制台中查看data
,结果显示为:
Running Post.
(Pacific Standard Time) is client TimeZone.
对于每个客户,这当然是不同的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.