Получение значений переменных из PHP в AJAX
Имеется выпадающий список для выбора определенного человека, после его выбора необходимо с помощью AJAX ниже в поля input вывести его фамилию,имя,отчество и E-mail.
Вот часть из HTML:
PHP код,обрабатывающий выбранного человека:
Кривой AJAX,который должен получать значение переменных из PHP страницы
Подскажите,как правильно описать присвоение значений в SUCCESS, чтобы каждому полю INPUT присвоить значение полученной переменной.
Передать переменную из PHP в JavaScript
Мы представим способ передачи переменной PHP в JavaScript с помощью AJAX. Этот метод запрашивает данные с сервера PHP и запускается на клиентском компьютере.
Please enable JavaScript
Мы также продемонстрируем другой метод передачи переменной PHP в JavaScript путем экранирования PHP в JavaScript. Мы пишем JavaScript после сценариев PHP, чтобы избежать PHP.
Мы покажем вам еще один пример передачи переменной PHP в JavaScript с использованием короткого тега echo в JavaScript как <?=$var?> , Где <?=$var?> — это переменная PHP.
Используйте AJAX для передачи переменной PHP в JavaScript
Мы можем использовать AJAX для передачи данных и переменных с PHP-сервера в JavaScript. Этот метод имеет отдельные серверные и клиентские сценарии. Это делает код чище и улучшает читаемость кода. AJAX означает асинхронный JavaScript и XML. Он использует объект XMLHttpRequest для запроса данных с сервера. Он отображает данные с использованием JavaScript и HTML DOM. Этот процесс происходит асинхронно, что означает, что изменения на веб-странице происходят без ее перезагрузки. Однако при использовании AJAX в сетях возникает задержка, поскольку он отправляет HTTP-запрос. В этом методе мы пишем код JavaScript в файле PHP.
Например, создайте файл PHP с именем index.php . Напишите код JavaScript внутри тега <script> . Создайте переменную req , используя ключевое слово var . Создайте объект запроса функции XMLHttpRequest() и присвойте его переменной req . Вызвать функцию onload() с объектом req , используя выражение функции. Внутри функции используйте функцию console.log() для регистрации свойства this.responseText . Не забывайте заканчивать выражение функции точкой с запятой. Используйте объект req для вызова функции open() . Задайте get , get-data.php и true одновременно в качестве параметров функции. Вызвать функцию send() с объектом req . Создайте еще один файл PHP с именем get-data.php . Присвойте переменной var значение Mountain . Повторите функцию json_encode() с параметром var .
В приведенном ниже примере мы создали объект запроса с помощью функции XMLHttpRequest() . Функция onload() обрабатывает операцию, которая будет выполняться во время ответа. Функция open() определяет метод HTTP, файл PHP, который отправляет ответ JSON, и логическое значение, которое контролирует остальную часть выполнения скрипта. Функция json_encode() в файле get-data.php отправляет ответ в формате JSON. Здесь мы напечатали в консоли переменную $var .
Используйте JavaScript, чтобы избежать сценариев PHP для передачи переменной PHP в JavaScript
Мы можем использовать JavaScript после тегов PHP, чтобы избежать сценариев PHP. Мы можем создать переменную PHP в скрипте PH P. Затем мы можем написать JavaScript, чтобы избежать написанного выше PHP и передать переменную внутри кода JavaScript. Внутри JavaScript мы можем использовать тег PHP, чтобы отобразить переменную PHP, назначив ее переменной JavaScript.
Например, присвоить значение Metallica переменной $var внутри тегов PHP. Напишите тег скрипт и внутри него напишите тег PHP. Внутри тега PHP отобразите переменную JavaScript jsvar . Назначьте переменную PHP $var на jsvar . Не забудьте заключить в кавычку $var и точку с запятой после нее. Закройте тег PHP и зарегистрируйте значение jsvar с помощью функции console.log() . Закройте тег скрипт . В приведенном ниже примере мы зарегистрировали переменную PHP $var в консоли с помощью JavaScript. Мы видим вывод в консоли веб-страницы.
Используйте короткий эхо-тег PHP <?=?> Внутри JavaScript для передачи переменной PHP в JavaScript
Мы можем использовать короткий эхо-тег PHP внутри JavaScript, чтобы передать переменную PHP в JavaScript. Мы можем использовать короткий PHP-тег echo, чтобы избавиться от хлопот с написанием PHP-тега и оператора echo . Это короткий метод. Этот метод очень похож на второй метод с точки зрения концепции и исполнения.
Передача переменных и данных из PHP в JavaScript
У меня есть переменная в PHP, и мне нужно получить ее значение в JavaScript. Как можно это сделать?
У меня есть код PHP, который выглядит так:
<?php
.
$val = $myService->getValue();
?>
И код JavaScript, который требует val и выглядит следующим образом:
<script>
myPlugin.start($val); // я пытаюсь получить ее здесь, но это не работает
<?php myPlugin.start($val); ?>// не работает
myPlugin.start(<?=$val?> // иногда работает, иногда нет
</script>
Ответ 1
-
Используйте AJAX для получения необходимых данных с сервера.
-
Выведите данные куда-нибудь на страницу и используйте JavaScript для получения информации из DOM.
-
Выведите данные прямо в JavaScript.
Используйте AJAX для получения необходимых данных с сервера.
-
Лучшее разделение между слоями. Если вы перестанете использовать PHP и захотите перейти к сервлету, REST API или какой-либо другой службе, вам не придется менять большую часть кода JavaScript.
-
Более читабельный . JavaScript – это JavaScript, PHP – это PHP. Не смешивая их, вы получаете более читаемый код на обоих языках.
-
Обеспечивает асинхронную передачу данных – получение информации из PHP может потребовать больших затрат времени и ресурсов. Иногда вы просто не захотите ждать информацию, загружать страницу и получать к ней доступ.
-
Данные не находятся непосредственно в разметке – это означает, что ваша разметка очищена от любых дополнительных данных и только JavaScript видит их.
-
Задержка – AJAX создает HTTP-запрос, а HTTP-запросы передаются по сети и имеют сетевые задержки.
-
Состояние – данные, полученные с помощью отдельного HTTP-запроса, не будут включать никакой информации из HTTP-запроса, по которому был получен HTML-документ. Вам может понадобит ь ся эта информация (например, если HTML-документ создается в ответ на отправку формы), и, если вы это сделаете, вам придется каким-то образом передать ее. Если вы исключили встраивание данных на страницу (которая у вас есть, если вы используете этот метод), это ограничивает вас файлами cookie/sessions, которые могут быть предметом конкуренции.
Пример реализации
С AJAX вам нужны две страницы, одна из которых — это то, где PHP генерирует вывод, а вторая — где JavaScript получает его:
get-data.php
index.php
<script>
function reqListener () <
console.log(this.responseText);
>
var oReq = new XMLHttpRequest(); // требуемый объект
oReq.onload = function() <
// Здесь вы определяете, что делать с ответом.
// Фактические данные находятся в this.responseText
alert(this.responseText);
>;
oReq.open(«get», «get-data.php», true);
oReq.send();
</script>
Вышеупомянутая комбинация двух файлов отобразит предупреждение «42», когда файл завершит загрузку.
Выведите данные куда-нибудь на страницу и используйте JavaScript для получения информации из DOM.
-
Быстро – операции DOM часто бывают быстрыми, и вы можете относительно быстро хранить и получать доступ к большому количеству данных.
-
Потенциально неопределенная разметка . Обычно для хранения информации используется что-то вроде <input type=hidden>, потому что проще получить информацию из inputNode.value, но это означает, что у вас есть бессмысленный элемент в HTML. В HTML есть элемент <meta> для данных о документе, а в HTML5 появились атрибуты data-* для данных, специально предназначенных для чтения с помощью JavaScript, которые могут быть связаны с определенными элементами.
-
Загрязняет источник . Данные, которые генерирует PHP, выводятся непосредственно в HTML, что означает, что вы получаете большой HTML.
-
Труднее получить структурированные данные . С труктурированные данные должны быть валидным HTML, иначе вам придется самостоятельно выводить и преобразовывать строки.
-
Тесная связь PHP с логикой данных . Поскольку PHP используется в представлении, вы не можете разделить эти два понятия.
Пример реализации
Идея состоит в том, чтобы создать какой-то элемент, который не будет отображаться на странице, но будет виден JavaScript.
index.php
<div style=»display: none;»>
<?php
$output = «42»; // результат операции для вывода
echo htmlspecialchars($output); // необходимо экранировать, т.к. результат не будет корректным в HTML
?>
</div>
<script>
var div = document.getElementById(«dom-target»);
var myData = div.textContent;
</script>
Выведите данные прямо в JavaScript.
-
Очень легко реализуется – требуется совсем немного времени для реализации.
-
Не загрязняет исходный код – переменные выводятся непосредственно в JavaScript, поэтому DOM не затрагивается.
-
Тесно связывает PHP с вашей логикой данных – поскольку PHP используется в представлении и вы не можете разделить их.
Пример реализации
Реализация относительно проста:
<script>
var data = <?php echo json_encode(«42», JSON_HEX_TAG); ?>;
</script>
Ответ 2
Я обычно использую атрибуты data- * в HTML.
<div data-service=»<?php echo $myService->getValue(); ?>»>
</div>
<script>
$(document).ready(function() <
$(‘.service-container’).each(function() <
var container = $(this);
var service = container.data(‘service’);
>);
>);
</script>
В этом примере используется jQuery, но его можно адаптировать для другой библиотеки или Vanilla JavaScript.
Ответ 3
Воспользуйтесь одним из следующих способов :
<script type=»text/javascript»>
var js_variable = ‘<?php echo $php_variable;?>’;
<script>
Или
<script type=»text/javascript»>
var js_variable = <?php echo json_encode($php_variable); ?>;
</script>
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Как передать переменную из PHP в JQuery Ajax, как для параметра URL?
Я новичок в области JavaScript, поэтому у меня есть путаницы. Прежде всего, я пытаюсь загрузить данные таблицы базы данных, когда я нажимаю какой-либо текст, где я упоминал событие onclick внутри тега, который закрывает некоторый текст. Каждый текст также извлекается из базы данных. Таким образом, это означает, что у них есть выделенный для них идентификатор (некоторый текст).
Проблема в том, как передать идентификатор конкретной строки в JQuery ajax show, чтобы ее можно было передать вместе с ajax url в другой php файл?