現在、php から変数を解析するために javascript を使用する必要がある Web ページがあります。
私は次のようなことをします:
data.notices = JSON.parse('<?php echo json_encode($notices) ?>');
ただし、$notices 変数に一重引用符または二重引用符があると、javascript コンソールがエラーを返します。
変数を正しく取得するにはどうすればよいですか?
現在、php から変数を解析するために javascript を使用する必要がある Web ページがあります。
私は次のようなことをします:
data.notices = JSON.parse('<?php echo json_encode($notices) ?>');
ただし、$notices 変数に一重引用符または二重引用符があると、javascript コンソールがエラーを返します。
変数を正しく取得するにはどうすればよいですか?
$a='b'
"b"
によって(引用符に注意してください)に変換されます。json_encode
書くJSON.parse(<?php echo json_encode($notices) ?>);
(削除する'
)だけでOKです。
このコードはエラーを返しません
<?
$notices = array('sad'=>'asd as" asd', 'asd"sdf '=>'asdasd" \' asd ads');
?>
<script>
data = new Object();
data.notices = JSON.parse('<?php echo addslashes(json_encode($notices)) ?>');
</script>
データベースに挿入する前に文字をエスケープしなかったことが原因であることがわかりました。
あなたは1つの余分な操作です。メッセージをJavaScript変数として使用したい場合は、次のように直接取得できます
data.notices = <?php echo json_encode($notices) ?>;
// and access like this
// data.notices[0] or data.notices['alert']