1

重複の可能性:
PHP 変数を Javascript に渡す最良の方法は何ですか?

簡単かつ安全に PHP から JavaScript に変数を渡す処理を自動的に処理する関数を実行する必要があります。現在、変数の値を含むクラス変数配列に格納されており、Javascript で抽出することを考えていますが、これを行うための (技術的に) 最善の方法は何なのか、多くの疑問があります。

また、いくつかの問題が頭をよぎります。特に、アクセント付きの Javascript 配列または文字列への複雑な移動、特殊記号または記号を引用符または一重引用符として使用する場合、改行とキャリッジ リターンを使用してチェーンを操作する場合の関数 json_decode の問題が含まれます。(無効な JSON を取得します。これらの文字を含む変数を渡すことを避けるために、PHP でクリーニング関数を実行する必要がありましたが、必要になる場合もあります)

私はウェブをよく検索しましたが、多くの答えを見つけましたが、上記の問題について納得できるものはありませんでした。

例:

PHP メソッド (単純すぎる):

   var JsVars;
   public function saveJsVar($key, $value) {
      $this->JsVars[$key] = $value; //Possible need to clean certain characters like /n /r
   }

「JavaScript部分」

<script>
   var SistemVars = SistemVars || {};
   <?php foreach ($JSVARS as $k => $var) { ?>
   SistemVars.<?=$k?> = '' || '<?php echo $var ?>'; // Dont work with arrays only plain
   <?php } ?>
</script>

別のオプション:

<script>
   var SistemVars = SistemVars || {};
   SistemVars = <?=json_encode($JSVARS)?> // Object, with plain and array BUT problems with certain characters.
</script>

PHP (saveJsVar) を使用して単純な変数と配列を保存し、JavaScript で SistemVars オブジェクトに変数を設定して、alert(SistemVars.ParamOne); のように使用するという考え方です。

あなたの経験から、これを行うための最良の方法は何だと思いますか?

4

2 に答える 2

1

foreach2番目のオプションは、ループを使用して保存するため、より良い方法です。また、json_encode はこの目的のために作成されているので、それを使用してみませんか :) 参考までに、PHP の短いタグ<?= ...?>はもう使用されていませんPHP の短いタグの使用は許容されますか?

  <script>
  var SistemVars = SistemVars || {};
  SistemVars = <?=json_encode($JSVARS)?> // Object, with plain and array BUT problems with certain characters.
</script>
于 2012-09-24T13:04:36.027 に答える
0

非表示の入力要素を使用し、jQueryでそれらの値を使用/アクセスするのが好きです。これを行うと、内部にPHPコードがなくても、jsをクリーンに保つことができます。すべてのJSコードを外部ファイルにエクスポートする場合は、これが方法です。

于 2012-09-24T13:08:15.487 に答える