2015-05-19 3 views
0

Я пытаюсь создать систему комментариев, и их комментарий будет отправлен в div на submit. Мне нужно установить его имя:Uncaught ReferenceError: не определено

var session_username = <?php echo $_SESSION['username']; ?>; 
var full = '<div> ...' + session_username + '...</div>'; 
$('#commentslice').prepend(full); 

В консоли это говорит:

Uncaught ReferenceError: [whatever the username is] is not defined.

ответ

3

Если ваш PHP значение (предположительно строка) содержит свои собственные котировки, вы должны обернуть его:

var session_username = "<?php echo $_SESSION['username']; ?>"; 

Предположим, что имя пользователя «foo», и вы его не завернули. Замена выйдет на:

var session_username = foo; 

, который является ссылкой на переменную foo. Если это не определено (и имена пользователей, скорее всего, будут случайными строками, которые не входят в ваш код), вы столкнетесь с этой ошибкой.

Это не изменит поведение PHP вообще, оно все равно заменит этот фрагмент на значение имени пользователя сеанса. Однако JS будет видеть строковую переменную и рассматривать ее как часть текста.

0
var session_username = "<?php echo $_SESSION['username']; ?>"; 

или

var session_username = <?php echo json_encode($_SESSION['username']); ?>; 
Смежные вопросы