我正在尝试这段代码:
<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的增量变量?
由于
答案 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;
?>