eucalipt
@eucalipt
Самоделкин.

Как отправить запрос в БД, не обновляя страницу?

Здравствуйте, сегодня я решил перейти на новый для себя уровень и улучшить качество своего сайта.

Мне стало очень интересно, как делаются такие вещи как проверка доступности никнейма, вход в аккаунт без перезагрузки страницы и подобные штучки.

Порывшись в езернете обнаружил, что с этим связана так называемая технология AJAX. Хотелось бы узнать, как она работает, что это вообще есть, что из себя представляет, как подключается, с чем ее едят и что можно почитать по этому вопросу.

Теперь ближе к делу. Я думаю, что не нужно объяснять подробно, что именно я хочу, тут и так все понятно. Нужно авторизировать пользователя, не перезагружая при этом страницу. У меня есть необходимый php код, но, понятное дело, с таким подходом придется страницу перезагружать.

Кто что может посоветовать по этому поводу? Желательно, конечно, исчерпывающий пример привести того, как это можно сделать, с кодом, понятно. Буду очень признателен.
  • Вопрос задан
  • 3257 просмотров
Решения вопроса 1
OAPrilepa
@OAPrilepa
Frontend developer
Допустим, существует на сайте форма, работает без ajax:
<form action="" id="test_form">...</form>
Чтобы она стала работать через ajax, надо на js повесить обработчик события submit, и прерывать в нем событие (методом return false;), вместо чего отправлять запрос средствами js.
Для простоты и кроссбраузерности можно подключить jquery.
Тогда появится такой код:
$(function(){ // DOM ready
	$('#test_form').submit(function(){
		$.post(
			$(this).attr('action'), // url
			$(this).serializeArray(), // data
			function(answ) //callback
			{
				//...
			},
			'html' // answer type (html, text, json, ...)
		);
		return false;
	});
});

Дальше уже дело фантазии. Я часто делаю полноценную noajax версию, потом на backend добавляю if (!$_REQUEST['ajax']) { ... } обертки вокруг блоков, которые при ajax отдавать не надо (для экономии передаваемого трафика).

Чтобы пользователь не спамил запросами на сервер можно ставить индикатор запроса и т.п.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Комментировать
Ваш ответ на вопрос

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

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