Я пытаюсь передать переменную php внутри javascript bt, она не работает.
<a href="javascript:wait1();getPass('<?php echo $current?>');">Comment</a>
Возможно ли это сделать, или я могу быть некорректным где-то …
Спасибо за ваш ответ заранее! 🙂
Вы динамически генерируете 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.