Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
решения:взаимодействие_по_ajax [2018/11/24 22:20] a1 [Взаимодействие по AJAX] |
решения:взаимодействие_по_ajax [2023/06/03 04:39] (текущий) gear |
||
|---|---|---|---|
| Строка 15: | Строка 15: | ||
| ''/assets/js/somebody.js'' | ''/assets/js/somebody.js'' | ||
| <code javascript> | <code javascript> | ||
| - | $('[data-action="sombody.action"]').on('submit', function(e){ | + | document.querySelector('[data-action="sombody.action"]').addEventListener('submit', (e)=>{ |
| e.preventDefault(); //исключаем действие по умолчанию | e.preventDefault(); //исключаем действие по умолчанию | ||
| - | var form = $(this); //получаем форму | + | let elForm = e.target; //получаем элемент формы |
| - | var request = $(this).formObject(); //получаем данные из формы | + | let requestData = new FormData(elForm); //получаем данные из формы |
| - | w_core.request('somebody.action',request,function(response){ | + | w_core.request('somebody.action',requestData,function(responseData){ |
| - | form.formErrors(response.errors); //обрабатываем результат проверки | + | w_core.formErrors(elForm, responseData.errors); //обрабатываем результат проверки |
| - | console.log(response.info); //выводим в консоль переданную переменную info | + | console.log(responseData.info); //выводим в консоль переданную переменную info |
| }); | }); | ||
| }); | }); | ||
| Строка 29: | Строка 29: | ||
| <code php> | <code php> | ||
| function somebodyAction() { | function somebodyAction() { | ||
| - | $result = new w_result($this); //получение объекта результата запроса | + | $response = w_response::load($this); //получение объекта результата запроса |
| $field1 = w_input::int('field1'); //получаем поле field1 как число | $field1 = w_input::int('field1'); //получаем поле field1 как число | ||
| $field2 = w_input::text('field2'); //получаем поле field2 как текст | $field2 = w_input::text('field2'); //получаем поле field2 как текст | ||
| - | $result->errorField($field1, 'somebody.field1', 'Поле field1 заполнено неверно'); | + | $response->errorField($field1, 'somebody.field1', 'Поле field1 заполнено неверно'); |
| - | $result->errorField($field2, 'somebody.field2', 'Поле field2 заполнено неверно'); //проверка полей | + | $response->errorField($field2, 'somebody.field2', 'Поле field2 заполнено неверно'); //проверка полей |
| - | if (!$result->fail) { //проверяем, если валидация прошла успешно | + | if (!$response->fail) { //проверяем, если валидация прошла успешно |
| - | $result->info = 'Все ок!'; //передаем переменную info | + | $response->info = 'Все ок!'; //передаем переменную info |
| } | } | ||
| | | ||
| - | $result->exec(); //Отправляем данные | + | $response->exec(); //Отправляем данные |
| } | } | ||
| </code> | </code> | ||
| Строка 47: | Строка 47: | ||
| ===== Передача запроса при клике по ссылке или кнопке ===== | ===== Передача запроса при клике по ссылке или кнопке ===== | ||
| <code javascript> | <code javascript> | ||
| - | $('[data-action="sombody.action"]').on('click', function(e){ | + | document.querySelector('[data-action="sombody.action"]').addEventListener('click', (e)=>{ |
| e.preventDefault(); //исключаем действие по умолчанию | e.preventDefault(); //исключаем действие по умолчанию | ||
| - | var obj = $(this); //ссылка | + | let elBtn = e.target; //получаем элемент ссылки |
| - | var request = $(this).attrObject(); //получаем data-атрибуты ссылки | + | let requestData = Object.assign({},elBtn.dataset); //получаем data-атрибуты ссылки |
| - | w_core.request('somebody.action',request,function(response){ | + | w_core.request('somebody.action',requestData,function(responseData){ |
| - | console.log(response.info); //выводим в консоль переданную переменную info | + | console.log(requestData.info); //выводим в консоль переданную переменную info |
| }); | }); | ||
| }); | }); | ||