Javascript jquery ajax不向php传递数据?

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

我试图将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="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,因为您没有对
数据执行任何操作,所以您看不到它。您希望如何处理返回的数据?无错误。成功函数运行,因为它是警报测试。对我的代码进行了一次小更新。不再发出警报,但您现在可以看到被操纵的数据。可以了!不知道什么时候会这样,因为我不太经常离开美国。我将把它添加到要访问的地方。评论不用于长时间的讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。