将数组值从javascript代码传递给php

时间:2016-09-29 13:59:57

标签: javascript php arrays json

我正在尝试将数组的值传递给php,但我无法获取值。它返回NULL,当我使用var_dump()时它返回array(1){[0] => string(0)“”}数组([0] =>)

这里是代码:

$("#submit").click(function () {
   var newhour= [];
   for (var i = 0; i < arrayNumbers.length; i++) {
        newhour.push(arrayNumbers[i].toString().split(','));   
        console.log("each: " + newhour[i]); // output: each: 07:00,08:30
                                                       each: 18:00,19:00                                                   
   }
   console.log("all: " + newhour); //output: all: 07:00,08:30,18:00,19:00

   var jsonx = JSON.stringify(newhour);
   console.log("x: " +jsonx); // output: x: [["07:00","08:30"],["18:00","19:00"]]
   $.ajax({
         type: "POST",
         url: "hour.php",
         data:{data: jsonx}, 
         cache: false,
         success: function(){
                  alert("OK");
         }
   });
});

hour.php文件包括:

  $data = json_decode($_POST['data'],true);
//$data = json_decode(($_POST['data']));  
//$data = explode(",", $_POST['data']);
//$data = $_POST['data']; 
  echo "data: " .$data;
  var_dump($data);
  foreach($data as $d){
        echo $d;
  }

我挣扎了几个小时,我尝试了一切,但没有得到任何价值。 我不明白我哪里错了。 你能帮我解决一下我的代码吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

对我来说很好 这是我用于arrayNumbers的数据

var arrayNumbers = [1, 591, 283, 12];

这是返回数据

data: Arrayarray(4) { [0]=> array(1) { [0]=> string(1) "1" } [1]=> array(1) { [0]=> string(3) "591" } [2]=> array(1) { [0]=> string(3) "283" } [3]=> array(1) { [0]=> string(2) "12" } } ArrayArrayArrayArray

编辑:刚为arrayNumbers尝试了几个不同的值。当我使用var arrayNumbers = [""];时,我得到了确切的回报。检查您正在使用的值,因为这就是问题所在。

注意:我还必须发表评论each: 18:00,19:00,但我认为您已经对此进行了评论并将其复制错误