Lafafm
@Lafafm
Development lead, Full stack generalist

Как осуществить подгрузку выполненного php скрипта в ajax?

Не знаю как точнее описать саму проблему, но постараюсь сделать это максимально точно.

Есть страница с регистрацией клиентов, написанная на php. Хотелось бы вытянуть эту страницу в отдельный div при помощи ajax. Проблема в том, что при submit формы идет переадресация на саму страницу регистрации, где описываются ошибки при вводе либо при успешной регистрации, идет переадресация в clientarea.

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

Я мало сталкивался с ajax, но, если можете чем-то помочь, буду очень благодарен.
  • Вопрос задан
  • 3086 просмотров
Решения вопроса 1
@Insayt
Вам необходимо собрать данные из формы и отправить на ваш скрипт проверки. В ответ присылать либо "Все ок", либо "Ошибка + текст ошибки". Если все ок - просто перезагружать текущую страницу (соответственно юзер уже будет залогинен), или выдавать текст ошибки на экран.
Отправка формы через ajax происходит по средствам перехвата события submit
Предположу что на проекте есть jQuery - тогда код будет похож на этот
//Перехватываем событие отправки
$('id вашей формы').submit(function(){

//Собираем данные из формы
 var data = $(this).serialize();

//Посылаем запрос
$.ajax({
                url: '/ПутьКВашемуСкрипту',
                type: 'POST',
                data: {
                   data: data
                }
                success: function(res) {
                    //Это вызовется при успешном ответе от сервера
                    console.log(res)
                },
                error: function(){
                    alert('Что то пошло не так :(');
                }
            });

});


На сервере теперь распечатайте что приходит в $_POST и проводите нужные манипуляции :)

Подробней про jQuery ajax тут
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
$.post("php-file.php", $(this).serialize(), function (response) {
					$(this).parent("div").html("<div class='form_response'>" + response + "</div>");
				});


Если вкратце.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы