Возможный дубликат:
Передайте строку PHP переменной Javascript (и избегайте новых строк)
Я работаю над проектом, и это уже сделано, но ему нужно еще одно средство и его применение языковых констант в файлах javascript.
рассмотрим, что мы включаем файл javascript, и что у нас есть что-то вроде этого
alert("YOU Have VOTED BEFORE");
Так легко, сценарий будет предупреждать о том, что текст
но что, если нам нужно предупредить о его языковой константе:
alert("<?php echo _VOTED_BEFORE?>");
это будет работать только в том случае, если эхо сценарий, как встроенные мои php-коды …
но как мы можем читать и включать php-константы или $ vars для внешнего файла JavaScript ???
Существует способ сделать это, используя строку запроса в пути сценария
См. Мой ответ здесь
Как передать переменную из php-шаблона в javascript
К сожалению, это сломает кеш для вашего js-файла, поэтому сначала оцените ваши варианты
<script type="text/javascript" src="script.js?flag=<?php echo _VOTED_BEFORE?>"></script>
для того, чтобы не писать слишком много кода, обратитесь к ссылке, чтобы узнать, как получить значение
Для более чистой структуры я считаю, что лучший способ – установить все данные, которые вы получаете из PHP, в одном месте, то есть в HTML, который вы используете через PHP:
<script> var MyNameSpace = { config: something: "<?php echo _VOTED_BEFORE ?>" } } </script>
В файл JavaScript, который вы MyNameSpace.config.something
впоследствии, вы можете получить доступ к значению через MyNameSpace.config.something
.
Это также облегчает повторное использование сообщения.
Собственно, то, что у вас было, было близким к правильному.
<?php // Valid constant names define("VOTED_BEFORE", "false"); ?> <script type="text/javascript"> alert("<?php echo VOTED_BEFORE;?>"); </script>
Если это не файл PHP, вы не можете включать в него функции эха PHP. Я предлагаю, чтобы, если вы хотите использовать переменную PHP в своих внешних js-файлах, объявите ее как глобальную в вашем PHP-файле, прежде чем ссылаться на внешние js.
<script type="text/javascript"> var globalvar = '<?php echo _VOTED_BEFORE ?>' ; </script> <script type="text/javascript" src="externalfile.js"></script>
Хотя не всегда хорошая идея загромождать глобальное пространство имен.
Вы можете использовать файлы cookie, чтобы сохранить эти константы и прочитать их через JavaScript, или вам придется использовать AJAX