如何在ajax.php页面中获取JSON数据?

时间:2014-04-28 14:13:18

标签: php ajax json

我正在使用ajax JSON发送电子邮件。

代码:

var lookup = {
            'name': fname,
            'email': email,
            'items': [{
                'message': message,
                'value': itemValue
            }]
        }
        $.ajax({
            type: 'post',
            url: 'ajax.php',
            data: JSON.stringify(lookup),
            success: function(data){
                alert(data);
            },
            contentType: 'application/json',
            dataType: 'json'
        });

我的数据将采用JSON格式

{"name":"Chinmay","email":"xxxxxxxx@gmail.com","items":[{"message":"Bla Bla Bla!!!","value":"100"}]}

在我的ajax.php页面中,如何获取nameemailmessagevalue

2 个答案:

答案 0 :(得分:1)

由于您将数据发布为JSON,因此您必须反序列化raw post data

$data = json_decode(file_get_contents("php://input"), true);
echo $data['name'];
...

答案 1 :(得分:0)

那不行。 data参数需要键 - 值对,因此您可以执行以下操作:

data: {json_string: JSON.stringify(lookup)},

并在php中:

$data_array = json_decode($_POST['json_string']);

虽然通常您只需将表单发送到您的php(如果可能)文件,而无需自己构建数据结构:

data: $('form').serialize(),

然后在php中你可以做类似的事情:

$name = $_POST['fname'];