Инструменты пользователя

Инструменты сайта


решения:взаимодействие_по_ajax

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
решения:взаимодействие_по_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
    });    });
 }); });
решения/взаимодействие_по_ajax.1543087252.txt.gz · Последние изменения: 2018/11/24 22:20 — a1