Шпаргалка. Простой и понятный ajax с использованием jQuery и php-обработчика и для примера этим скриптом регистрируется пользователь в битриксе.
HTML
<a href="#" class="write_review">Написать</a>
JS
При клике по элементу с классом write_review вызывается ajax.
$('.write_review').click(function(){
$.ajax({
url : 'action.php',
type : 'POST',
data : {
'user' : 'Vasiliy',
},
// dataType:'json',
success : function(data) {
// alert('Data: '+data);
},
error : function(request,error)
{
// alert("Request: "+JSON.stringify(request));
}
});
})
Еще можно сериализовать данные перед отправкой.
$.ajax({
url : '/ajax/form.php',
type : 'POST',
data : {
'data' : $("form#orderform").serialize(),
},
success : function(data)
{
},
});
В обработчик будет приходить такая строка:

Обработчик
Обработчик получает имя пользователя и регистрирует его.
Если пользователь зарегистрирован, выдает соответствующее сообщение.
if($_POST['user']):
global $USER;
if (!$USER->IsAuthorized()):
// echo "вы не авторизованы";
$name = $_POST['name'];
$tmp_pass = rand().rand().rand().rand().rand().rand().rand().rand().rand().rand();
$email = $name."@".SITE_SERVER_NAME;
$arResult = $USER->Register($tmp_name, "", "", $tmp_pass, $tmp_pass, $email);
// ShowMessage($arResult); // выводим результат в виде сообщения
// echo $USER->GetID(); // ID нового пользователя
echo "OK";
else:
// echo "вы авторизованы";
echo "AUTHORIZED";
endif;
endif;
Отправка полей формы
Это тоже ajax но без ответа от обработчика. Отправляем сериализованый массив полей формы <form id="orderform"> на обработчик.
$.post('/ajax/form.php', $('form#orderform').serialize());
Не перезагружать страницу
При сабмите формы может перезагружаться страница. Чтобы препятствовать этому, добавить в скрипт или preventDefault или return false после отработки логики.
$('form#quick-odr').submit(function(e){
e.preventDefault();
$.ajax({
url : '/ajax/form.php',
type : 'POST',
data : {
'data' : $("form#orderform").serialize(),
},
success : function(data)
{
// alert('ok');
},
});
return false;
});