我想将2个PHP对象作为数据传递给$.post.
$(function() {
$("button").click(function() {
$.post("fight.PHP",{player: "<?PHP $player;?>", enemy: "<?PHP $enemy; ?>"},function(result) {
$("#displayfight").html(result);
});
});
});
$player,$enemy是2个不同的对象,每个对象都有一些属性.我想将它们作为整个对象传递给它们,以便fight.PHP可以处理它们.
我也尝试过序列化,但无济于事:
{player: $("<?PHP $player ?>").serialize()}
我怎样才能做到这一点?
注意:使用我尝试的所有方法,我得到一些’未知标识符’或$_POST在接收页面上显示为空.
编辑:json_encode部分工作,但解码失败.在接收页面上:
$player = json_decode($_POST["player"])
失败并返回错误:json_decode()期望参数1为字符串,给定数组
解决方法:
您需要使用json_encode
,如下所示:
$.post("fight.PHP",{
player: <?PHP echo json_encode($player);?>,
enemy: <?PHP echo json_encode($enemy);?>
}, ... );
请注意,<?PHP?>周围没有引号标签;如果需要,json_encode将自动添加它们.
除此之外,您需要了解json_encode强加的要求:最重要的是,如果您的对象包含字符串内容(作为属性或任何子对象的属性),则这些字符串必须以UTF-8编码.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。