我遇到了一个需要你帮助的小问题。我在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,它们将作为字符串反馈到上面的javascript的obj
变量中。我需要自动完成这项工作;当页面加载时,javascript中的obj
被初始化,当我将新的$val
项添加到数据库中时,这也必须自动完成(我不必打开此默认页面进行编辑obj
)。
您是否了解我现在遇到的问题,请询问并回复。谢谢
答案 0 :(得分: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调用来填充这个数组,但这并不总是最好的方法,所以我将由你决定。
答案 1 :(得分:0)
当渲染页面构成时,javascript为字符串并输出。因此,当您的页面被加载时(在您已经构建了数组对象之后),它将以JS为例。
希望这有帮助