如何在php

时间:2015-07-31 21:04:06

标签: javascript php jquery

好的,我有一些由表单输入的数据和一些由页面生成的数据 这是我的js文件获取并将数据推送到php文件

$(document).ready(
    function() {    
    $("#message_sender").submit(function(event){

        event.preventDefault();

        var sender_data = {
            avatar: document.getElementById("user_avatar_hidden").textContent,
            username: document.getElementById("user_username_hidden").textContent,
            message: $("#message_sender").serialize()
        };

        alert(sender_data.message);

        $.ajax({
             url: 'Js_returns/message_sent.php',
             type: 'post',
             data: {"data" : JSON.stringify(sender_data)},
             success: function(data) {
                $("#conversation_table").append(data);
             }
        });
    });
});

现在,我正常访问头像和用户名,但我无法按照我想要的方式访问消息部分。

$var= json_decode($_POST["data"]);
    echo $var -> avatar;

因此,如果我没有将数据转换为js对象,我可以轻松地执行$ _POST ['message_title']; 我试过$ var - >消息 - > MESSAGE_TITLE; (我知道这没什么意义,但是它是什么)并且它没有用

PS使用serialize推送的表单包含message_title和text_editor_area

1 个答案:

答案 0 :(得分:1)

PHP不会递归解码数据结构。您发送了data=sometext结构,其中sometext恰好是JSON结尾的结构。当您解码该JSON时,php绝对 NO 提示message是另一个serialized()数据结构。你必须自己处理:

$var = json_decode($_POST['data']);
$unserialized_data = parse_str($var['message']);