2013-03-21 3 views
0

В настоящее время у меня есть веб-страница, которая должна использовать javascript для анализа переменных из php.
я такие вещи, как это:
php javascript json parse escape characters

data.notices = JSON.parse('<?php echo json_encode($notices) ?>'); 

Однако, когда есть одинарные или двойные кавычки в $ извещений переменных, консоль JavaScript возврата ошибок.

Как правильно получить переменные?

ответ

1

Этот код Безразлично `возвращаемая ошибка

<? 
$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> 
+0

[{"content": "\\ '\\' hello"}] это ошибки возврата. Я думаю, когда я пишу одну цитату в базе данных, я нашел в mssql-сервере, она хранится как \ '. Когда я получаю переменную от базы данных до $ notices, она снова становится «\\» \\ «привет». –

+0

@ user985874 У меня нет ошибки при использовании '$ notices = array ('content' =>" \\ '\\' hello ");' –

1

$a='b' будут преобразованы в "b" (обратите внимание на кавычки) по json_encode

JSON.parse(<?php echo json_encode($notices) ?>); просто написать (удалить ') будет нормально.

0

Я обнаружил, что это проблема, вызванная тем, что я не избежал символов перед вставкой в ​​базу данных.

0

Вы являетесь одной дополнительной операцией. Если вы хотите, чтобы сообщение отображалось как переменная javascript, вы можете получить прямо

data.notices = <?php echo json_encode($notices) ?>; 
// and access like this 
// data.notices[0] or data.notices['alert']