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 コードがクライアント上で実行されます。

Javascript コードに完全なデータを提供するループを PHP コードに記述する必要があります。

これを行う一般的な方法の 1 つは、それを配列に入れ、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 に答える