使用来自javascript和php变量的循环值

时间:2012-04-12 00:15:03

标签: php javascript

我有这个代码在javascript中执行for循环,里面有一个php数组。无论如何我可以使用变量作为php变量内部的循环。这都在php里面。

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

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



}</script>';

我知道这不会起作用,因为$ phparr是一个php变量,而i是一个javascript变量,无论如何我可以这样做吗?

5 个答案:

答案 0 :(得分:0)

尝试:

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

    for (i in phparr){

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

    }
</script>

PHP是server side language,这意味着它在到达客户端(浏览器)之前执行。

JavaScript是client side language,这意味着它在浏览器(客户端)中执行。

新网络开发者的最佳工具是Google搜索。 Learn how to search effectively.

答案 1 :(得分: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数组中的对象是字符串吗?如果是这样,您需要在内爆前使用转义引号包围对象。

for($i=0; i<count($phparr); $i++){
    $phparr[i] = '"'.$phparr[i].'"';
};

答案 2 :(得分:-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>

答案 3 :(得分:-1)

你应该这样做:

var arr = ["<?php echo implode('","',$array); ?>"];
for (var i =0; i<4;i++){
alert("hey"+ arr[i]);
}

答案 4 :(得分:-1)

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