(追記)
コメントにある通り、以下の形だとxssが出来てしまいます。
let value = JSON.parse("<?= json_encode($value) ?>");
$valueが日本語を含む配列の場合json_encode()
によって\u7532
のような文字に変換されてしまうため、JSON.parse()
を使っていたのですが、
json_encode($value, JSON_UNESCAPED_UNICODE);
とすれば日本語はそのままになるため、JSON.parse
は必要なくなりました。
本文
PHPからJavascriptに変数で値を渡す時以下のように書くと思います。
let value = JSON.parse("<?= json_encode($value) ?>");
この場合、json_encode($value)
の中身に""
が含まれていた場合、""
を""
で囲う形になりエラーになってしまいます><
その場合は以下のようにシングルクオートに変えてあげればエラーは直ります。
let value = JSON.parse('<?= json_encode($value) ?>');
エラーが出た場合はエラーメッセージと変数の中身を確認して囲うクオートをダブルにするか、シングルにするかちゃんと選ぶ必要がありそうです。