从jQuery的AJAX将数据传递给PHP的问题

时间:2012-03-05 07:20:49

标签: php jquery ajax

我试图使用Jquery的AJAX将数据数组传递给PHP脚本;这是我的JS:

var dataObject = {
    shippingDataRow: [{
        name: $('#shippingData_name').val(),
        street: $('#shippingData_street').val(),
        number: $('#shippingData_number').val(), 
    }]

};

$.ajax({
    type: "post",
    data: { action: 'test', data: dataObject },
    cache: false,
    url: "php/post_test.php",  
});

这是PHP(在我编写所有程序之前只做一些测试),

<?php
    function test(){
        $dataObject = $_POST['dataObject'];
        print_r( $dataObject );
    }
?>

在Chrome的开发者工具中,我可以看到状态代码:200 OK;即使所有数组都具有正确的值,但是当我打开php时它不起作用。

有什么想法吗?

6 个答案:

答案 0 :(得分:1)

尝试:$dataObject = $_POST['data'];

您需要参考发布数据的关键字,而不是javascript中的值。

答案 1 :(得分:0)

变化:

$dataObject = $_POST['dataObject'];

要:

$dataObject = $_POST['data'];

答案 2 :(得分:0)

你的帖子应该是

$_POST['data'];

答案 3 :(得分:0)

你没有在任何地方调用test()。因此,它的cuess返回200ok但是在test_php中检查null.echo中的任何内容并检查。

答案 4 :(得分:0)

var dataObject = {
    shippingDataRow: {
        name: $('#shippingData_name').val(),
        street: $('#shippingData_street').val(),
        number: $('#shippingData_number').val()
    }
};

$.ajax({
    type: "post",
    data: { action: 'test', data: dataObject },
    cache: false,
    url: "php/post_test.php"
});

-

<?php
   $dataObject = $_POST['data'];
   print_r( $dataObject );
?>

答案 5 :(得分:0)

正如其他人提到的,$ _POST ['data']将为您提供数据数组。

另外,使用$ _REQUEST效果很好,因为它会同时定位get / post请求。