我有这段代码在javascript中执行一个for循环,里面有一个php数组。无论如何,我可以将变量用于 php 变量内部的循环。这一切都在 php.ini 中。
echo '<script>
for (var i =0; i<4;i++){
alert("hey"'.$phparr[i].');
}</script>';
我知道这行不通,因为 $phparr 是一个 php 变量,而 i 是一个 javascript 变量,无论如何我可以做到这一点吗?
我有这段代码在javascript中执行一个for循环,里面有一个php数组。无论如何,我可以将变量用于 php 变量内部的循环。这一切都在 php.ini 中。
echo '<script>
for (var i =0; i<4;i++){
alert("hey"'.$phparr[i].');
}</script>';
我知道这行不通,因为 $phparr 是一个 php 变量,而 i 是一个 javascript 变量,无论如何我可以做到这一点吗?
您快到了。为了在 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].'"';
};
您的基本问题是您忘记了 PHP 代码和 JavaScript 代码不会同时执行。PHP 运行完成,输出 HTML 和 JavaScript。然后浏览器运行 JavaScript。如果 JavaScript 需要动态访问 PHP 变量(包括数组)中的数据,那么 PHP 需要生成 JavaScript 以声明 JavaScript 结构中的数据。这就是所有其他答案正在做的事情。
如何将 PHP 数组存储在 Javascript 变量中并按照 kpotehin 的建议进行循环?
<script>
var i = 0, name;
var myArr = <?php echo json_encode($my_array); ?>;
while (name = myArr[i++]){
alert("hey " + name);
}
</script>
你应该这样做:
var arr = ["<?php echo implode('","',$array); ?>"];
for (var i =0; i<4;i++){
alert("hey"+ arr[i]);
}