Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这到底需要如何解决?_Php_Javascript_Jquery_Json_Joomla - Fatal编程技术网

Php 这到底需要如何解决?

Php 这到底需要如何解决?,php,javascript,jquery,json,joomla,Php,Javascript,Jquery,Json,Joomla,我遇到了一个小问题,需要你的帮助。我在一个Joomla模块中编写代码,但这对所有不喜欢Joomla的人来说并不是一个真正的问题 在Joomla的模块中,将有一个名为tmpl(template简称)的文件夹,其中包含一个小文件default.php,视图将显示在浏览器中。这大概是我正在处理的文件的一部分 !DOCTYPE HTML <?php // perform some initialization ?> <script language="javascript">

我遇到了一个小问题,需要你的帮助。我在一个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>
!DOCTYPE HTML
$(文档).ready(函数()
{
var obj=[“o1”、“o2”、“o3”、“o4”、…、“o_n”];
//用rangeobj做点什么
});
//获取$val->id
foreach
循环中,我希望获得
$val
中的所有整数ID,这些ID将作为字符串反馈到上述javascript的
obj
变量中。我需要这是自动完成的;加载页面时,javascript中的
obj
被初始化,当我向数据库中添加新的
$val
项时,这也必须自动完成(我不必打开此默认页面来编辑
obj


你了解我现在的问题吗,请提问并回答。谢谢

一个解决方案是用PHP构建要传递给JS的数组,然后对其进行编码并按原样传递给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>
!DOCTYPE HTML
$(文档).ready(函数()
{
var-obj=;
//用rangeobj做点什么
});

另一种方法是使用AJAX调用填充此数组,但这并不总是最好的方法,因此我将让您自己决定。

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


希望这有帮助

谢谢Jadkik,这看起来很有希望。我会先尝试一下你的建议,jason方法,如果我有时间的话,也会用ajax重新做。