Можно ли передать переменную php внутри javascript?

Я пытаюсь передать переменную php внутри javascript bt, она не работает.

<a href="javascript:wait1();getPass('<?php echo $current?>');">Comment</a> 

Возможно ли это сделать, или я могу быть некорректным где-то …

Спасибо за ваш ответ заранее! 🙂

Solutions Collecting From Web of "Можно ли передать переменную php внутри javascript?"

Вы динамически генерируете Javascript. Вы избавитесь от головных болей, если вам это нужно, сделайте это простым. Перенесите данные с PHP на Javascript самым простым способом в верхней части страницы:

 <script type="text/javascript" > var $current = '<%? echo $current; %>'; </script> 

Как указывали другие, вам нужно будет закодировать и процитировать вашу переменную php, используя json_encode (в этом случае вам, вероятно, не нужны кавычки) или более простая функция escape, если вы знаете возможные значения.

Теперь ваш встроенный код может быть проще:

 <a href="javascript:wait1();getPass($current);">Comment</a> 

Окончательная рекомендация заключалась бы в том, чтобы вывести это в свою собственную функцию и использовать атрибут «onclick».

Прежде всего, вы, вероятно, должны изменить тег «java» на «javascript».

Что касается вашего вопроса – PHP разбирается на стороне сервера, а Javascript работает на стороне клиента. Если вы не собираетесь использовать AJAX и асинхронные вызовы, вы можете записать значения в источник JS, например:

 <script type="text/javascript"> var foo = <?php echo $yourData; ?>; alert(foo); </script> 
 <a href="javascript:wait1();getPass('<?=$current?>');">Comment</a> 

Используйте json_encode() если ваш PHP имеет его.
Это автоматически укажет и удалит вашу строку и гарантирует, что специальные символы будут правильно закодированы, чтобы предотвратить атаки на межсайтовый скриптинг (XSS). Однако, я думаю, вам придется передать строки UTF-8 этой функции.

И у vol7ron есть хороший момент – вы должны положить точку с запятой ; после вашего заявления и поставьте пробел между этим и вопросительным знаком ? для лучшей удобочитаемости.

 <a href="javascript:wait1();getPass(<?php echo json_encode($current); ?>);">Comment</a> 

Вы также можете передать booleans, ints и даже целые массивы в json_encode() чтобы передать их JavaScript.