Метод jQuery $.get() предоставляет легкий и удобный способ сделать простой запрос AJAX.
jQuery.get( url, [data], [callback] ) – загружает страницу, используя GET-запрос. Это самый простой способ передачи GET-запроса серверу.
Выполнение запроса, без получения ответа сервера:
С выводом результатов запроса в alert():
Запрос с передачей параметров:
Чтобы передать HTML-форму, нужно вторым параметром передавать её сериализацию id_form.serialize().
Пример
HTML форма
Javascript скрипт обработки формы
Пусть при нажатии на кнопку Enter в любом из полей (сработает событие формы Submit), или при нажатии на кнопку Send в форме, без перезагрузки страницы введенные пользователем данные отправились на сервер. Напишем небольшой кусочек кода на Jquery:
Вот и все, клиентская часть закончена. В самом начале мы привязываем на событие формы Submit собственную функцию, затем запрещаем стандартное действие формы, для того, чтобы страница не перезагружалась, затем получаем адрес скрипта для обработки данных, и метод передачи данных (GET или POST) и сами данные, с помощью встроенной функции serialize, которая перебирает все поля формы, и составляет из них строку в формате имя_поля=значение&имя_поля2=значение2 и т.д. и отправляем все данные при помощи Ajax. После того, как клиентская часть получит ответ от сервера, заменяем все внутренности формы на результат полученный от серверной части.
PHP часть обработки формы
ограничимся минимальным скриптом proceed.php
Пример простейший. Хотя в нем можно, к примеру, убрать возможность отправки формы ботами.
jQuery.get( url, [data], [callback] ) – загружает страницу, используя GET-запрос. Это самый простой способ передачи GET-запроса серверу.
Выполнение запроса, без получения ответа сервера:
Код:
$.get("server.php");
Код:
$.get("server.php", function(data){
alert("Данные загружены: " + data);
});
Код:
$.get("server.php", { name: "Vasya", age: "27" }, function(data){
alert("Данные загружены: " + data);
});
Пример
HTML форма
HTML:
<form action='proceed.php' method='POST' id='test_form'>
<fieldset>
<legend>Test From</legend>
<label for=name>Name:</label><input type='text' id='name' name='name' value=''>
<label for=email>Email:</label><input type='text' id='email' name='email' value=''>
<input type='submit' value='Send'>
</fieldset>
</form>
Пусть при нажатии на кнопку Enter в любом из полей (сработает событие формы Submit), или при нажатии на кнопку Send в форме, без перезагрузки страницы введенные пользователем данные отправились на сервер. Напишем небольшой кусочек кода на Jquery:
PHP:
$(function(){
$('#test_form').submit(function(e){
//отменяем стандартное действие при отправке формы
e.preventDefault();
//берем из формы метод передачи данных
var m_method=$(this).attr('method');
//получаем адрес скрипта на сервере, куда нужно отправить форму
var m_action=$(this).attr('action');
//получаем данные, введенные пользователем в формате input1=value1&input2=value2...,
//то есть в стандартном формате передачи данных формы
var m_data=$(this).serialize();
$.ajax({
type: m_method,
url: m_action,
data: m_data,
success: function(result){
$('#test_form').html(result);
}
});
});
});
PHP часть обработки формы
ограничимся минимальным скриптом proceed.php
PHP:
<?php
print_r($_GET);
print_r($_POST);
?>