3

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

在 Joomla 的模块中,将有一个名为tmpltemplate我认为简称为)的文件夹,其中包含一个小文件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循环中,我想获取其中的所有积分 id,它们将作为字符串$val反馈到上面的 javascript变量中。obj我需要这个自动完成;当页面加载时,objin javascript 被初始化,当我$val在数据库中添加一个新项目时,这也必须自动完成(我不必打开这个默认页面来编辑obj)。

您是否了解我现在遇到的问题,请询问并回复。谢谢

4

2 回答 2

0

一种解决方案是在 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 调用来填充此数组,但这并不总是最好的方法,因此我将由您决定。

于 2012-09-04T07:58:52.090 回答
0

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

希望这可以帮助

于 2012-09-04T07:59:58.690 回答