繁体   English   中英

通过AJAX传递PHP对象

[英]Pass PHP object via AJAX

我想知道最好的方法是通过AJAX传递php对象。

例如

//objectClass = objectClass.php
$obj = new objectClass();
<a href="javascript:getOutput("some variable", $obj);

由于另一个文件(即output.php(通过getOutput()函数中的ajax调用))也需要访问objectClass.php,因此访问$ obj的最佳方法是什么?

我试图jscon_encode($ obj)然后解码但不起作用。

提前致谢

老实说,将需要传递的信息(在这种情况下为对象)存储在类似@mario的会话变量中将是最简单的。 如果您需要将其作为动态命名的会话变量,则可以通过AJAX传递会话变量的名称(字符串)。

json_encode是最好的方法。

您需要在href参数中使用“而不是”,并在JSON_encode中添加JSON_HEX_APOS选项以转义JSON中的所有“”。

像这样使用它:

<?php
    //objectClass = objectClass.php
    $obj = new objectClass();
?>    
<a href='javascript:getOutput(<?php echo $some_variable ?>,<?php echo json_encode ($obj, JSON_HEX_APOS) ?>);'></a>

要么

<?php
    //objectClass = objectClass.php
    $obj = new objectClass();    
    echo "<a href='javascript:getOutput($some_variable, " . json_encode ($obj, JSON_HEX_APOS) . " );'></a>"
?>

编辑:如果您有jQuery,我建议使用jQuery.parse()加载JSON。 如果不是,则可以使用JSON.parse(),但我不知道它是否与旧版浏览器兼容。 无论如何,如果没有它们,您应该没事(只需在服务器端检查XSS)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM