簡単かつ安全に 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); のように使用するという考え方です。
あなたの経験から、これを行うための最良の方法は何だと思いますか?