0

我有这段代码在javascript中执行一个for循环,里面有一个php数组。无论如何,我可以将变量用于 php 变量内部的循环。这一切都在 php.ini 中。

echo '<script>
for (var i =0; i<4;i++){

alert("hey"'.$phparr[i].');



}</script>';

我知道这行不通,因为 $phparr 是一个 php 变量,而 i 是一个 javascript 变量,无论如何我可以做到这一点吗?

4

5 回答 5

0

尝试:

<script>    
    var phparr = <?php echo json_encode($phparr); ?>;

    for (i in phparr){

        alert("hey" + phparr[i]);

    }
</script>

PHP 是一种服务器端语言,这意味着它在到达客户端(浏览器)之前执行。

JavaScript 是一种客户端语言,这意味着它在浏览器(客户端)中执行。

对于新的 Web 开发人员来说,最好的工具是 Google 搜索。 了解如何有效搜索。

于 2012-04-12T00:34:06.833 回答
0

您快到了。为了在 javascript 中访问 php 数组,您首先必须将 php 数组回显到 javascript 数组中。尝试:

$phparr_imploded = implode(',',$phparr);
echo '
    <script>
        var arr = ['.$phparr_imploded.'];
        for (var i =0; i<4;i++){
            alert("hey"+arr[i]);
        }
    </script>
';

如果您的 php 数组来自数据库,或者包含 javascript 可能会误解的特殊字符,请确保在输出前进行清理。

您的 php 数组字符串中的对象是什么?如果是这样,您需要在 implode 之前用转义引号包围对象。

for($i=0; i<count($phparr); $i++){
    $phparr[i] = '"'.$phparr[i].'"';
};
于 2012-04-12T00:51:32.700 回答
-1

您的基本问题是您忘记了 PHP 代码和 JavaScript 代码不会同时执行。PHP 运行完成,输出 HTML 和 JavaScript。然后浏览器运行 JavaScript。如果 JavaScript 需要动态访问 PHP 变量(包括数组)中的数据,那么 PHP 需要生成 JavaScript 以声明 JavaScript 结构中的数据。这就是所有其他答案正在做的事情。

于 2012-04-12T00:29:36.100 回答
-1

如何将 PHP 数组存储在 Javascript 变量中并按照 kpotehin 的建议进行循环?

<script>
var i = 0, name;
var myArr = <?php echo json_encode($my_array); ?>;

while (name = myArr[i++]){
  alert("hey " + name);
}
</script>
于 2012-04-12T00:20:55.097 回答
-1

你应该这样做:

var arr = ["<?php echo implode('","',$array); ?>"];
for (var i =0; i<4;i++){
alert("hey"+ arr[i]);
}
于 2012-04-12T00:21:19.573 回答