Intereting Posts
Как получить данные из xml в php и создать новую страницу или URL-адрес в php и показать полный контент из xml? Как встраивать таблицы стилей с Assetic, основанные на значении в сеансе Тайм-аут по умолчанию в PHP Как предотвратить Предупреждение: длина содержимого и размер памяти POST Файлы, не загружаемые в динамически создаваемые папки / подпапки Как проверить, зарегистрирован ли пользователь в новой facebook php api разница между mysqli_query и mysqli_real_query Как получить изображения из базы данных MySQL и отобразить их в теге html Проблема с закрытием PHP Уведомление PayPal IPN, получающее несколько уведомлений за один и тот же платеж mysqli_fetch_array Дает мне повторяющиеся строки Вставьте один или несколько наборов полей в базу данных с помощью динамической формы JSONException: значение типа java.lang.String не может быть преобразовано в JSONObject Symfony 2 UniqueEntity repositoryMethod не работает при обновлении объекта Сброс PHP через сеанс через некоторое время

Как определить переменную в JavaScript с помощью функции эха PHP?

Как определить переменную в javascript с функцией echo, из внешнего php-файла?

У нас есть theconfigfile.php , thejsfile.js и thephpfile.php .

В файле theconfigfile.php мы имеем:

<?php $path = 'http://example.com/home.php'; // Set your path ?> 

В thejsfile.js мы имеем:

 ... if (confirm("Are you sure you want to delete")) { $.ajax({ type: "POST", url: "http://example.com/home.php", data: dataString, cache: false }); ... 

И в thephpfile.php мы имеем:

  <php include "theconfigfile.php"; ?> <html> <head> <script type="text/javascript" src="thejsfile.js"></script> </head> <body> ...here is the code that uses file thejsfile.js... </body> </html> 

Я использовал этот метод:

 ... if (confirm("Are you sure you want to delete")) { $.ajax({ type: "POST", url: "<?php echo $path; ?>", data: dataString, cache: false }); ... 

Работает только в том случае, если javascript является частью кода. И если я использую его внешним, вот так …

 <script type="text/javascript" src="thejsfile.js"></script> 

…не работает! Решения?

Related of "Как определить переменную в JavaScript с помощью функции эха PHP?"

Есть несколько способов сделать это.

Вы можете настроить свой веб-сервер для обработки файлов с расширением .js с помощью PHP и просто вставлять свой PHP там. Конечно, это означает, что вам нужен способ действительно вычислить переменную там, и это замедлит обслуживание вашего обычного содержимого javascript.

Вы можете просто вывести переменную PHP в переменную Javascript внутри элемента <script> подобного этому

 <script type="text/javascript"> var path = "<?php echo $path; ?>"; </script> 

И затем получите доступ к этой переменной path в вашем AJAX. Большинство из них, вероятно, будут использовать второй подход.

Вы можете переименовать свой thejsfile.js в thejsfile.php , добавить его к самому началу , и он должен быть проанализирован для PHP:

 <?php header("Content-type: text/javascript"); ?> 

Затем сделайте следующее:

 <head> <script type="text/javascript" src="thejsfile.php"></script> </head> 

Другой вариант – просто настроить сервер для анализа файлов .js для PHP.

В файле thephpfile.php,

 <html> <head> <script type="text/javascript"> var config = { url: '<?= $path; ?>' }; </script> <script type="text/javascript" src="thejsfile.js"></script> </head> 

Затем вы можете получить к нему доступ с помощью config.url в своем javascript.

Вы можете поместить значения таким образом только в файлы, которые обрабатываются PHP.
Внешние JavaScript-файлы не обрабатываются PHP, поэтому они связаны как без поддержки.

Если вы не отправляете сообщение на другой сервер через JSONP, вы можете просто рассмотреть использование относительного пути, жестко закодированного в вашем Javascript, так что вам не нужно отправлять путь с сервера клиенту:

 ... $.ajax({ type: "POST", url: "home.php", data: dataString, cache: false }); .... 

Но если это URL-адрес, который часто изменяется, и он действительно нуждается в настройке, вы можете отбросить переменную PHP как скрипт примерно так:

 <html> ... <script src="thejsfile.js" type="text/javascript"> <script type="text/javascript"> // 'path' is a variable that is defined in thejsfile.js path = '<?php echo htmlentities($path) ?>'; </script> ... 

Всякий раз, когда вы выводите информацию с сервера клиенту (особенно в виде Javascript), вы должны быть ДЕЙСТВИТЕЛЬНО осторожны, чтобы избежать экранирования атак (то есть разрешить людям вставлять javascript в ваш код). В этом случае нет причин разрешать любые типы html-символов.

При работе с внешними JS-файлами вы можете сохранить значение в скрытом поле и получить значение полей с помощью JavaScript.

 <input type="hidden" name="path" id="path" value="<?php echo $path; ?>" /> 

и в javascript (я буду использовать jquery)

 var path = $('#path').attr('value'); 

Очевидно, вы могли бы записать переменную в теги сценария на странице, но если вы используете какой-либо расширенный тип шаблонов, может быть трудно получить доступ к этой переменной.

 echo "<script type='text/javascript'>var AccomodationInfoForm4 =".$path."</script>"; 

Просто попробуйте повторить путь, показанный выше, и вы можете получить доступ к своей переменной в любом месте. Поскольку это будет доступно глобально для всех ваших js файлов на вашей странице.