Ответы пользователя по тегу Базы данных
  • Как отправить запрос в БД, не обновляя страницу?

    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 отдавать не надо (для экономии передаваемого трафика).

    Чтобы пользователь не спамил запросами на сервер можно ставить индикатор запроса и т.п.
    Ответ написан