0

コードは次のようになります。

PHPファイル

<?php
...
$arrayName = ['ArrayValue_0', ..., 'ArrayValue_n'];
...
php?>

JavaScript

$('.elementClass').each(function(index, id) {
    $(id).html('<?php echo $arrayName[index - 1]?>');
});

しかし、そのような JavaScript 変数を php タグに挿入するだけでは、インデックスが受信されません。これはAJAX経由で実行できることは知っていますが、他に方法はありますか? 前もって感謝します。

追加情報: PHP でこれを行うように言われたので、配列を JS ファイルに切り替える可能性はありません。

4

3 に答える 3

7

arrayNameJS で変数を定義し、サーバーからの値で初期化できます。

var arrayName = <?php echo json_encode($arrayName); ?>;
$(".elementClass").each(function(index, id) {
    $(id).html(arrayName[index-1]);
});
于 2013-05-15T09:53:28.840 に答える
1

あなたがやろうとしていることはうまくいきません。たとえば、次のようになります。

$(id).html('<?php echo $arrayName[index - 1]?>');

PHPはユーザーのブラウザではなくサーバー上で実行されるため、上記は決して機能しません。

あなたがする必要があるのは、何らかの方法で変数をサーバーに送信することです。たくさんのオプションがあります:

  1. $_POSTフォームを使用して変数を読み取る
  2. URL に追加して$_GET変数を読み取る
  3. AJAX を使用し、その変数を非同期的にサーバーに送信します。
  4. 配列全体を PHP から Javascript コードに返します
  5. などなど

PHP はサーバー上で実行され、ページがレンダリングされ、Javascript を実行するブラウザーによって読み取られることを思い出してください。PHP コードをページに貼り付けて、それが PHP によって解析されることを期待することはできません!

于 2013-05-15T09:53:14.987 に答える
0

サーバーから情報を取得したい場合はサーバーに戻る必要があります (PhP はサーバー上で実行されます)。そのため、PhP 配列の完全なコンテンツを含むページをロードするときにオンザフライで JavaScript 変数を作成します。ページ全体を更新せずに ajax を使用してサーバーに戻ります。

于 2013-05-15T09:52:11.317 に答える