1

我正在尝试同时增加 java 脚本变量和 php 变量的值,所以在我的 java 脚本中我这样做:

<script>
<?php $i=1;?>
for(var i=1;i<=5;i++){
var abc = $('<input>').attr('name','demo'+i).attr('value','<?php echo set_value('demo'.$i++));
 <?php echo $i; ?>
 }
</script>

但是,每次 $i echo`ed 的值为 2 时,逻辑上它应该增加 java 脚本循环迭代的次数并回显 5 但它不是,我做错了什么?

4

3 回答 3

5

PHP 代码不会与 Javascript 代码同时运行。

PHP 代码在客户端接收页面之前在服务器上运行。客户端收到页面后,Javascript 代码在客户端上运行。

您需要在 PHP 代码中编写一个循环,为您的 Javascript 代码提供完整的数据。

一种常见的方法是将其放入数组中并将其编码为 JSON 服务器端,然后将 JSON 提供给您的 Javascript 以进行进一步处理。请注意,如果您只是将数据分配给一个变量,则 Javascript 端不需要额外解析数据 - JSON 是有效的 Javascript。

进一步阅读

于 2012-08-17T08:40:06.760 回答
0

这段代码里面没有循环!(如果你问 PHP 解释器)。

它只是一个输出几行文本的 PHP 脚本(恰好是 Javascript 代码,恰好包含一个 Javascript 循环)。

于 2012-08-17T08:52:40.297 回答
0

您可以尝试理解此代码:

<script>
    <?php
    echo "var data = [";
    for ($i = 1; $i <= 5; $i++) {
        echo "'".set_value('demo'.$i)."'";
    }
    echo "];";
    ?>

    for (var i = 1; i <= 5; i++) {
        var abc = $('<input>').attr('name', 'demo' + i).attr('value', data[i]);
    }
</script>

实际发生的是,一旦你运行这个 php 文件,php 块会生成如下输出:

var data = ['demo1 value', 'demo2 value', 'demo3 value','demo4 value','demo5 value',];

这是 javascript 中的一个数组,您可以在 php 块下方的 javascript 代码中使用它。

于 2012-08-17T08:52:55.580 回答