如何在PHP中使用JavaScript变量?

时间:2011-10-21 23:26:18

标签: php javascript arrays loops

我正在尝试这段代码:

<script type="text/javascript">
for (i = 0; i < 5; i++) {
    for (x = 0; x < 1; x++) {
        $("#one" + i).html("<?php echo $arr["+i+"]["+x+"] ?>");
        $("#two" + i).html("<?php echo $arr["+i+"]["+x+1+"] ?>");
    };
};

</script>

没有显示错误,但内容也没有。

如何在PHP代码中使用JavaScript的增量变量?

由于

4 个答案:

答案 0 :(得分:6)

你不能这样做。

Javascript在客户端上运行,所有PHP代码执行后都是

为什么不用PHP编写循环?例如,

<script type="text/javascript">
<?php
for ($i = 0; $i < 5; $i++) {
    for ($x = 0; $x < 1; $x++) {
        printf('$("#one%s").html("%s");', $i, $arr[$i][$x]);
        printf('$("#two%s").html("%s");', $i, $arr[$i][$x + 1]);
    };
};
?>
</script>

答案 1 :(得分:6)

您可以让JS访问PHP数组(将其存储为js变量):

<script type="text/javascript">
var arr=<?php echo json_encode($arr); ?>;
for (i = 0; i < arr.length; i++) {
    for (x = 0; x < 1; x++) {
        $("#one" + i).html(arr[i][x]);
        $("#two" + i).html(arr[i][x+1]);
    };
};
</script>

答案 2 :(得分:1)

好的,我试着给你一个简短的问题。怀疑它可能很长。 PHP是一种服务器端脚本语言,而javascript则是客户端

这意味着php代码在服务器(例如Apache)中被解释和执行,javascript代码在浏览器本身内执行。

所以,你无法在你的浏览器中执行php代码。 对于你编写的代码,你可以简化php中的两个for javascript迭代。如果你真的需要在给定javascript变量的php中打印一些东西,你应该对一个php页面做一个AJAX请求,它返回你的javascript值并返回你需要的php计算值。

请查看这些参考文献作为开头:

答案 3 :(得分:0)

<?php由php解释器解释。如果您在实际的php文件中没有此块,那么这意味着您正在浏览器的上下文中执行。浏览器不知道php,只知道你的web服务器。因此,浏览器会将<?php解释为不存在的HTML元素。

您需要将整个块移动到php文件中,如下所示:

myFile.php
==========
    <?php
        $arr = array(...);
        $arrLen = count($arr);
        $output = '<script type="text/javascript">';
        for ($i=0; $i<$arrLen; $i++) {  // notice this is in php, not js
            $output .= '$("#one"'.$i.').html("'.$arr[$i][0].'");';
            $output .= '$("#two"'.$i.').html("'.$arr[$i][1].'");';
        }
        $output .= '</script>';
        echo $output;
    ?>