Javascript jquery ajax不向php传递数据?
我试图将javascript日期对象传递给php,但当我dump$\u POST时,它返回空数组或字符串。我在同一个文件中做这个,所以在 php是php代码和javascript代码。另外,javascript显示一切都是正确的,因为它在success函数中发出警报Javascript jquery ajax不向php传递数据?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图将javascript日期对象传递给php,但当我dump$\u POST时,它返回空数组或字符串。我在同一个文件中做这个,所以在 php是php代码和javascript代码。另外,javascript显示一切都是正确的,因为它在success函数中发出警报 <?php var_dump($_POST); //returns empty array var_dump($_POST['zone']); //returns null ?> <script type="te
<?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>
变量日期=新日期();
$.ajax({
类型:'POST',
数据:{区域:日期},
成功:功能(数据){
警报(“测试”);//此操作正常运行
},
错误:函数(xhr、textStatus、error){
console.log(xhr.statusText);
console.log(textStatus);
console.log(错误);
}
});
以下是我在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
}
?>
添加if
语句有助于避免混淆结果。如果包含此代码,则不确定如何执行此操作。正如我在评论中所说,你;您没有在帖子中传递日期对象,因此应该将所需的细节传递给PHP
编辑
更新代码。您现在可以在console中看到数据
,结果如下:
Running Post.
(Pacific Standard Time) is client TimeZone.
当然,每个客户端的情况都会有所不同。以下是我在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
}
?>
添加if
语句有助于避免混淆结果。如果包含此代码,则不确定如何执行此操作。正如我在评论中所说,你;您没有在帖子中传递日期对象,因此应该将所需的细节传递给PHP
编辑
更新代码。您现在可以在console中看到数据
,结果如下:
Running Post.
(Pacific Standard Time) is client TimeZone.
当然,每个客户端的情况都会有所不同。不起作用:/即使我尝试了新文件。它是一个警报测试,但不是从php中转储它……转储被发送回Ajax,因为您没有对
数据执行任何操作,所以您看不到它。您希望如何处理返回的数据?无错误。成功函数运行,因为它是警报测试。对我的代码进行了一次小更新。不再发出警报,但您现在可以看到被操纵的数据。可以了!不知道什么时候会这样,因为我不太经常离开美国。我将把它添加到要访问的地方。不起作用:/n即使我在新文件中尝试过。它是一个警报测试,但不是从php中转储它……转储被发送回Ajax,因为您没有对数据执行任何操作,所以您看不到它。您希望如何处理返回的数据?无错误。成功函数运行,因为它是警报测试。对我的代码进行了一次小更新。不再发出警报,但您现在可以看到被操纵的数据。可以了!不知道什么时候会这样,因为我不太经常离开美国。我将把它添加到要访问的地方。评论不用于长时间的讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。