Передать переменную из index.php через ajax в handler.php и обратно
Пытаюсь разобраться в основах основ. Есть три файла: index.html, ajax.html и handler.php.
1. При клике на тексте, нужно передать переменную text в handler.php через ajax.
2. Вывести, то, что передали
3. Затем передать переменную name из файла handler.php в index.php и снова вывести, что получили с помощью js.
index.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Document Кликни сюда
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
$(function() { $('.text').on('click', function (event) { /* event.preventDefault(); */ var errors = false; if( !errors ){ let text = $('.text'); $.ajax({ method: 'GET', url: 'handler.php', data: { key1: text, }, success: function (res) { console.log(res); }, error: function (xhr, textStatus, errorThrown) , }); }; }); });
handler.php:
1 2 3 4
$name='Юрий'; echo '$_GET['key1'], $name'; ?>
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Через ajax в url:’ajax.php’, нужно передать одну переменную, и значение radio кнопки
Как значение radio передать я разобрался, а вот как еще переменную со страницы кинуть в url.
Вытащить переменную из цикла PHP в функцию JS, и через AJAX обратно в PHP
Здравствуйте! Моя задача сделать форму обратной связи, но не самую простую. Изначально на форме.
Передать через Ajax php переменную
Со страницы авторизации, идет перенаправление на главную страницу. Все данные о пользователи.
3834 / 3182 / 1337
Регистрация: 01.08.2012
Сообщений: 10,788
Сообщение от maks_7
Сообщение от maks_7
url: ‘handler.php’,
Всегда указывайте абсолютные пути, например /ajax.js
Сообщение от maks_7
var username = »;?php>
Откуда взялась переменная $name?
Сообщение от maks_7
var username
Сообщение от maks_7
Разные названия переменных.
Сообщение от maks_7
let text = $(‘.text’);
Сообщение от maks_7
По идее нужно подставлять $(‘.text’).text()
Сообщение от maks_7
echo ‘$_GET[‘key1′], $name’;
Сообщение от maks_7
В целом — действуйте поэтапно. Берём первый пункт:
Сообщение от maks_7
1. При клике на тексте, нужно передать переменную text в handler.php через ajax.
Добейтесь, чтобы по клику переменная передавалась в скрипт. Проверить это можно во вкладке Network в консоли браузера. Как увидите, что GET-параметр корректно передаётся — переходите к следующему шагу.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Отправить массив из php(handler, сервер) в php(ajax, клиент)
Дело вот какое: имеется база сотрудников. Клиенту в браузер выдаю список (select). При выборе.
Передать массив в формате JSON из AJAX в PHP и обратно
Здравствуйте! Помогите пожалуйста разобраться. Нужно передать массив из AJAX в PHP, а потом.
Передать переменную из php в ajax
Все привет,есть два скрипта php и ajax,находятся они не на одной странице,мне нужно передать.
Как послать запрос из index.php файла в order.php файл, и из него принять обратно ответ?
Как послать post-запрос из index.php файла в order.php файл, и из него принять обратно json-ответ.
Передать результат успешного выполнения Ajax на jQuery в php переменную
Пожалуй одна из самых тривиальных задач для профи и одна из самых сложных для понимания для.
Передать через AJAX в PHP двумерный массив
Добрый день. Есть примерно такой код: var range = , sliderValues = ; . sliderValues = range;.
Как в ajax передать переменную из php
Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012
Помог: 6 раз(а)
В общем, сломал себе голову. Информации много, но так ничего толкового для себя и не вынес. Как ПРОЩЕ и удобнее всего передать строковое значение из js через ajax в php? Использую json. Делаю так:
CODE (javascript):
скопировать код в буфер обмена
function gotoserver ( ) {
var location = document. getElementById ( ‘Id1’ ) . value ;
$. post ( ‘./obr.php’ , location , success , ‘json’ ) ;
function success ( msg ) {
alert ( msg ) ;
Судя по алерту, данные до сервера доходят. Но КАК получить присланную строку в php? Собственно, мне нужно только значение этого самого document.getElementById(‘Id1’).value, больше ничего. Может, я нагородил лишнего? Пробовал еще так:
CODE (javascript):
скопировать код в буфер обмена
var location = ‘< \" location \" : \" ' + document. getElementById ( 'Id1' ) . value + ' \" >‘ ;
$. post ( ‘./obr.php’ , location , success , ‘json’ ) ;
function success ( msg ) {
alert ( msg ) ;
А в php пытался выловить нужную переменную через $_POST[‘location’], но массив $_POST ожидаемо пустой. Понимаю, что туплю. Но подскажите, где?
Отправлено: 17 Мая, 2012 — 22:58:54
Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011
Помог: 3 раз(а)
В Jquery это выглядит так:
var name = «Передаю данные»;
$.post(‘./obr.php’, , function(data) );
Отправлено: 17 Мая, 2012 — 23:24:22
Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012
Помог: 6 раз(а)
CODE (javascript):
скопировать код в буфер обмена
function gotoserver ( ) {
var location = document. getElementById ( ‘location’ ) . value ;
$. post ( ‘./obr.php’ , { dat : location } , success , ‘json’ ) ;
function success ( msg ) {
alert ( msg ) ;
В обработчике php пишу:
echo $_POST [ ‘dat’ ]
Ничего не выводится
На всякий случай полный листинг файла index.php:
CODE (html):
скопировать код в буфер обмена
< title >Старница 1 < / title >
function gotoserver() <
var location=document.getElementById('location').value;
$.post( './obr.php',
function success(msg) <
(Отредактировано автором: 17 Мая, 2012 — 23:30:32)
Отправлено: 17 Мая, 2012 — 23:42:28
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010
Откуда: Чернигов
Помог: 299 раз(а)
Hawkmoth но у location’a нету value и переменая скорее всего не определена, посмотрите ошибки.
——
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново — вы явно что-то делаете не так.
Отправлено: 17 Мая, 2012 — 23:53:35
Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012
Помог: 6 раз(а)
Нет, это просто я так коряво краткий вариант страницы накидал
На самом деле, kappa всё правильно написал, и пример работает, просто я ждал alert с выводом переданных данных, а клиент мне фигу показывал. Судя по всему, из-за формата ожидаемых данных. Вот так всё работает:
Курсы javascript
laimas, лучше так, чем заливать как есть.
Можно addslashes заюзать, если итоговый размер записи крайне важен.
25.06.2018, 15:03
Регистрация: 14.01.2015
Сообщений: 12,990
25.06.2018, 15:13
Регистрация: 04.12.2012
Сообщений: 3,654
laimas, в задаче почти ничего не известно о том, что за данные будут передаваться и что с ними будет происходить.
Также неизвестно какой драйвер бд используется и используется ли бд вообще.
Обрабатывать не пойми что, не пойми для чего и не пойми каким инструментарием — такое себе занятие.
25.06.2018, 15:21
Регистрация: 14.01.2015
Сообщений: 12,990
Nexus, причем тут драйвер? Вообще, принять и сразу htmlspecialchars, это либо от пугливости, либо от непонимания.
Нельзя так делать.
Страница 1 из 2 | 1 | 2 | > |
Передать данные из javascript PHP Ajax
Передача данных от fronted на backend(от javascript в php в нашем случае) сейчас достаточно часто используемая процедура, естественно, когда известно, как это сделать.
Что потребуется для работы:
- Сервер, где можно запустить php-скрипты;
- Текстовый редактор;
- Базовые знания PHP;
- Базовые знания Javascript;
- Понимание как работают GET и POST — запросы, в данной статье в основном будут использоваться POST — запросы.
Совсем простой пример
Несколькими годами раньше, нужно было писать большие и сложные запросы, но с приходом Jquery, все стало гораздо проще, поэтому первым шагом подключаем библиотеку jquery:
В первом примере, будем просто отправлять строку, при помощи функции $.post Jquery, где первым параметром передается название нашего php-скрипта, вторым — данные, если они есть, третьим функция обратного вызова(callback), в аргумент data, которой к нам придет ответ от сервера, если он будет. Пример кода js:
В результате у Вас должен получиться файл index.php, примерно такого содержания:
Test Ajax php
В php эти данные придут в $_POST[‘dataReq’]. Поэтому в самом простом примере, мы возьмем эту строку и отправим ее обратно, без всякой проверки. Пример кода script.php:
Открываем консоль в браузере и проверяем результат. В данном примере произошла передача данных от javascript к php и обратно, но без проверок, это было сделано специально, чтобы не усложнять и настроить коннект. В некоторых случая, когда нужно просто подгрузить данные, в фоновом режиме, этого может оказаться достаточно. Ссылка, на скачивание архива с примером, описанного выше.
Если удалось запустить файл из примера и посмотреть в консоле браузера результат, можно двигаться дальше.
Чуть сложнее
В реальности, загрузка данных происходит при наступлении какого-то события, например нажатие на кнопку, или ввод символов с троку поиска. Усложним пример, добавив обработчик на кнопку и подгрузку в div данных с сервера.
Модифицируем файл index.php, добавим кнопку,
, куда будем выводить результат и немного перепишем js, отредактируйте Ваш index.php, чтобы он стал такого содержания:
Test Ajax php
Также немного изменим файл script.php, его новый код:
Теперь мы по клику передаем число 5, на сервере к пришедшему числу прибавляется 25 и выводится под кнопкой число 30. То есть, происходит отправка данных, модификация и отображение. По ссылке ниже, можно скачать новый пример:
Передача и прием объектов
Наиболее распространенным данными, при передачи Ajax являются объекты, например в формате JSON. В следующем примере разберем вариант, где будем передавать данные из поля input, на сервере будем обрабатывать приходящие данные и отправлять назад массив php преобразованный в JSON объект и наполнять из него тег select, в зависимости от отправленного числа. Для этого модифицируем файл index.php, его новый код будет таким:
Test Ajax php
В js добавилась проверка приходящего результата, если он не равен 0, то в цикле наполняем тег select. Если же нам придет в ответе 0, это означает, что такого списка нет, так как нет такого ключа в массиве на сервере, (см. ниже описание под обновленным кодом script.php). В коде js добавил комментарии, за что отвечает та или иная строка.
Также модифицируем файл script.php, его новый код будет таким:
array( 1 => 'Автомобиль', 2 => 'Лодка', 3 => 'Дом', 4 => 'Коробка', 5 => 'Самокат', 6 => 'Мотоцикл', 7 => 'Автобус', 8 => 'Баржа', ), 2 => array( 1 => 'Роза', 2 => 'Фиалка', 3 => 'Тюльпан', 4 => 'Ромашка', 5 => 'Ирис', ), 3 => array( 1 => 'Ресторан', 2 => 'Магазин', 3 => 'Кафе', 4 => 'Бистро', 5 => 'Пекарня', 6 => 'Палатка с пирожками', ), 4 => array( 1 => 'Красный', 2 => 'Синий', 3 => 'Белый', 4 => 'Оранжевый', 5 => 'Зеленый', 6 => 'Фиолетовый', 7 => 'Черный', 8 => 'Желтый', 9 => 'Серый', 10 => 'Розовый', 11 => 'Голубой', ), 5 => array( 1 => 'Австралия', 2 => 'Индия', 3 => 'Китай', 4 => 'Япония', 5 => 'Испания', ), ); $param = $_POST['dataReq']; if(array_key_exists($param,$arrToSend))< echo json_encode($arrToSend[$param],JSON_UNESCAPED_UNICODE); >else < echo 0; >?>
В нем добавился массив, с элементами, и обработка данных из запроса, в переменную $param сохраняем то, что пришло у нас от javascript, затем при помощи конструкции if else и встроенной функции array_key_exists проверяем есть ли такой ключ в массиве $arrToSend, если есть, то трансформируем вложенный массив, по этому ключу при помощи функции json_encode в формат JSON и отправляем, если же ключа в основном массиве нет, то просто отправляем 0, это нужно для проверки на стороне js.
Результат этого примера должен быть такой, как на gif-ке ниже:
Ссылка на оф. сайт Jquery, документация по функции $.post, которая используется в статье. https://api.jquery.com/jquery.post/
Статья в ближайшее время будет дописана, с большим количеством примеров.