这需要如何解析JSON呢

How does this need JSON to be resolved at all?

本文关键字:JSON 何解析      更新时间:2023-09-26

我遇到了一个小问题,需要您的帮助。我在Joomla模块中进行编码,但对于所有对Joomla不友好的人来说,这并不是一个真正的问题。

在Joomla的模块中,会有一个名为tmpl(我认为简称template)的文件夹,其中包含一个小文件default.php,视图将在这里显示给浏览器。以下是我正在处理的文件的大致一部分

!DOCTYPE HTML
<?php 
// perform some initialization
?>
<script language="javascript">
$(document).ready(function()
{
    var obj=["o1","o2","o3","o4",...,"o_n"];
    //do something with range obj
});
</script>
<div>
    <div class="content">
        <?php
            if(is_set($array))
            {
                foreach($array as $key=>$val):
            ?>
                //GET $val->id
            <?php
                //display $val->$content
            }
        ?>
    </div>
</div>

foreach循环中,我想获得$val中的所有整数id,这些id将作为字符串反馈到上面javascript的obj变量中。我需要自动完成;当页面加载时,javascript中的obj被初始化,当我向数据库中添加新的$val项目时,这也必须自动完成(我不必打开这个默认页面来编辑obj)。

你理解我现在遇到的问题吗?请询问并回答。感谢

一个解决方案是在PHP中构建要传递给JS的数组,然后json_encode它并按原样传递给JS。这将比在JS中构建它,然后通过生成的JS代码扩展它更容易。例如:

!DOCTYPE HTML
<?php 
// perform some initialization
?>
<?php
$obj = array("o1","o2","o3","o4",...,"o_n");
if(is_set($array)) {
    foreach($array as $key=>$val) {
        $obj[] = $val->id;
    }
}
?>
<script language="javascript">
$(document).ready(function()
{
    var obj=<?php echo json_encode($obj); ?>;
    //do something with range obj
});
</script>

另一种方法是使用AJAX调用来填充这个数组,但这并不总是最好的方法,所以我将由您来决定。

在呈现页面时,将javascript组成字符串并输出。因此,当您的页面被加载时(在您已经构建了数组对象之后),它会将其作为JS进行优化。

希望这能帮助