好的,我有一些由表单输入的数据和一些由页面生成的数据 这是我的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
答案 0 :(得分:1)
PHP不会递归解码数据结构。您发送了data=sometext
结构,其中sometext
恰好是JSON结尾的结构。当您解码该JSON时,php绝对 NO 提示message
是另一个serialized()
数据结构。你必须自己处理:
$var = json_decode($_POST['data']);
$unserialized_data = parse_str($var['message']);