如果我尝试索引,$ _POST返回Array()并回显任何内容

时间:2016-10-25 13:05:43

标签: javascript php jquery arrays ajax

我正在尝试将一个对象(我认为它的一个对象(它是一个带有值的索引数组的关联数组/字典))传递给PHP文件,以便我可以将数据插入到数据库中。每次我尝试在PHP中访问数组的内容时,它都会返回Array()或Array,具体取决于我尝试的内容。我也尝试过使用$.ajax(),但会遇到同样的问题。

function postData()
{
    data = JSON.stringify(dataObject);
    alert(data);
     $.post("submit_order.php",
    data,
    function(status){
        alert(status)
        window.location.href = "submit_order.php";
    });
}

这是使用JSON.stringify()

后数据结构的样子
{
    "order":[
       ["2","chicken panini","3.95",1],
       ["1","cakes","3.55",1]
    ]
}

这就是我试图访问值和数据结构本身。如你所见,我尝试了各种各样的方法。

<?php
print_r($_POST);
echo $order[0][0];
echo $_POST['order'][0][0][1];
print_r($_POST['order'][0]);
print_r($_POST['order'][0][1]);
print_r($_POST['order'][0][0][1]);
foreach ($_POST as $key => $value) {
  echo $key;
}

当我print_r($_POST);它给了我

  

阵列()

{"order":[["2","chicken panini","3.95",1],["1","cakes","3.55",1],["3","big_cake","2.55",1]]} 

与POST请求一起发送。

4 个答案:

答案 0 :(得分:0)

您将数据作为JSON字符串传输 - 因此您必须在PHP端json_decode

<?php
    print_r(json_decode($_POST['order']));
?>

答案 1 :(得分:0)

function postData()
{
    data = JSON.stringify(dataObject);
    $.post( "submit_order.php", function( data ) {
      alert("success");
    });
}

尝试此功能。

答案 2 :(得分:0)

在第二个参数的代码中,您必须在{}之间发送参数:

$.post( "submit_order.php", { data: data }, function(status){
        alert(status)
        window.location.href = "submit_order.php";
    } );

答案 3 :(得分:-1)

<?php

if(!empty($_POST['order])){
  $_POST['order] = json_decode($_POST['order]);    
  foreach($_POST['order'] as $order_key => $order_value){
   echo $order_key ." =>". $order_value;
  }
}
?>

试试这个:)