在Javascript函数中使用PHP

在Javascript函数中使用PHP,php,javascript,Php,Javascript,处理将PHP与Javascript混合的最佳方法是什么?不应该这样做吗?应该以某种方式进行吗?我正在从事一个项目,发现了以下javascript函数: function getStuff() { <?php $stuff = "0:Select"; foreach ($this->stuff as $k => $v){ $stuff = $st

处理将PHP与Javascript混合的最佳方法是什么?不应该这样做吗?应该以某种方式进行吗?我正在从事一个项目,发现了以下javascript函数:

function getStuff() {
                <?php
                $stuff = "0:Select";
                foreach ($this->stuff as $k => $v){
                    $stuff = $stuff . ";" . $v['stuff_id'] . ":" . $v['stuff_name'];
                }
                ?>

                return "<?= $stuff ?>";
            }
函数getStuff(){ 返回“”; } 假设我需要PHP提供的数据,那么获取它的理想方法是什么?这对我来说似乎不太像,但写这封信的人是我的老板,所以在试图改变它之前,我想问一下


仅供参考,此JS用于视图脚本中,
$this->stuff
的数据从使用它的控制器传入。

一个很好的方法是将数据准备到
JSON
,然后将其作为页面上的变量。您可以拥有复杂的结构(充满数组的关联数组
n
-deep),并在javascript中将其表示为对象文本


一般来说,您不喜欢这样跳进跳出PHP标记是对的。这很难看,而且很难读取/维护。

这很可怕,更好的方法是通过Ajax请求以合适的格式(例如JSON)请求数据


来解释为什么它“可怕”。显然,这个函数是以一种quick-n-dirty的方式构建的,目的是完成工作,这种方法阻碍了函数的持续调试和维护。将服务器端数据和客户端处理分离开来有助于使事情变得简单和易于跟踪。

将ur js与PHP混为一谈的方法有很多。有一件事你总是牢记在心

在执行JS之前,您的PHP首先在服务器中执行

看起来您正在尝试向selectbox动态添加内容。如果是这样的话,你可以这样做

<?php
function createSelectbox( $selItems ) {
    $selTxt = "<select>";

    foreach ($selItems as $id => $value)
        $selTxt .= "<option id='" .$id. "'>". $value. "</option>";

    $selTxt .="</select>";

    return $selTxt;
}   


?>
<html>
    <head> </head>
<body>
<?php
$selItems = Array( 1 => "One", 2 => "Two", 3=> "Three" );
echo createSelectbox($selItems);
?>  
</body>
</html> 

如果我对数据进行json编码并将其粘贴到变量中,如何将其放入javascript中?例如,我的PHP脚本有一个函数,用于收集数据,json对其进行编码并将其作为
$foo
返回到视图。在视图中,我需要以$this->foo的形式访问它,但如何将其与我的javascript一起使用?selectbox是动态jquery生成网格的一部分,因此需要在javascript中完成。