nagon.net - бесплатная поставка трафика на ваши сайты
Логин:
Пароль:
Регистрация





Убрать рекламу с сайта чтобы не мешала!

Ajax отправка формы. Отправка формы при помощи Ajax. Отправка формы без перезагрузки страницы.

Допустим на странице сайта у нас есть форма


<form id="test_form" action="comment.php" method="post">
Имя: <input type="text" name="name" /><br />
Комментарий: <textarea name="comment"></textarea>
</form><br />
<div id="result">Тут будет статус загрузки</div><br /><br />
<div onclick="SendForm();">Отправить форму через Ajax</div><br />


Обратите внимание что у формы есть id="test_form", этот id нам нужен для доступа к форме через javascript.

Как отправить эту форму при нажатии на другой элемент с помощью Ajax без перезагрузки страницы?

Очень просто:

Подключите к своему сайту перед тегом </head> ScriptJava фреймворк, добавив вот такой код:


<script type="text/javascript" src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>


Далее реализовываем функцию отправки:


<script type="text/javascript">
function SendForm() {
//отправка файла на сервер
$$f({
formid:'test_form',//id формы
url:'comment.php',//адрес на серверный скрипт, такой же как и в форме
onstart:function () {//действие при начале отправки
$$('result','начинаю отправку');//в элемент с id="result" выводим результат
},
onsend:function () {//действие по окончании отправки
$$('result',$$('result').innerHTML+'<br />комментарий успешно отправлен');//в элемент с id="result" выводим результат
}
});
}
</script>


При нажатии на что либо нужно вызвать функцию которая будет отвечать за отправку формы через Ajax:


SendForm();


Как получать ответ от файла comment.php

Содержимое файла comment.php


<?php
if(isset($_POST['name'])) {
echo'
<script type="text/javascript">
var elm=parent.window.document.getElementById("result");
elm.innerHTML=elm.innerHTML+"<br />Получено имя '.str_replace("\r","",str_replace("\n","<br />",htmlspecialchars(stripslashes($_POST['name'])))).' с текстом '.str_replace("\r","",str_replace("\n","<br />",htmlspecialchars(stripslashes($_POST['comment'])))).' ";
</script>
';
}
?>


Как видите ничего сложного.
Вас зовут:

Ваш комментарий:


Код на картинке: