Добрый вечер!. Помогите пож разобраться. Перерыл много доков по jquery и форум, но не смог найти. Есть конкретный пример: Цель: Из формы отправить данные аяксом без перезагрузки страницы (ну это понятно). Отправить их пхп обработчику, там их словить, проверить ф-иями пхп, в случае каких-то ошибок вернуть текст ошибки из этого пхп скрипта через аякс в спец див, для ответов сервера. Так же, если будет всё ок, вернуть текст, что всё нормально, в этот же див. Ещё нужно что бы при нажатии на кнопку - появлялся анимир. гиф, иммитирующий передачу данных, а при приходе ответа, убирался. Ещё хотелось бы знать если есть в этой библиотеке метод такой, в общем надо при ответе сервера очистить форму Вот форма: | Код | <form action="handler.php" method="post" id="myForm"> <table width="100%" border="0" cellpadding="2" cellspacing="2"> <tr><td align="right">Login admin</td><td align="left"><input class="input_admin" type="text" name="admin_login" value="'.$admin_login.'" />*</td></tr> <tr><td align="right">Old password admin</td><td align="left"><input class="input_admin" type="password" name="admin_old_password" />*</td></tr> <tr><td align="right">New password admin</td><td align="left"><input class="input_admin" type="password" name="admin_new_password" /></td></tr> <tr><td align="right">Retype password admin</td><td align="left"><input class="input_admin" type="password" name="admin_retype_new_password" /></td></tr> <tr><td align="right">Name admin</td><td align="left"><input class="input_admin" type="text" name="admin_name" value="'.$admin_name.'" /></td></tr> <tr><td align="right">E-mail admin</td><td align="left"><input class="input_admin" type="text" name="admin_email" value="'.$admin_email.'" />*</td></tr> <tr><td align="right">ICQ admin</td><td align="left"><input class="input_admin" type="text" name="admin_icq" value="'.$admin_icq.'" /></td></tr> <tr><td align="right"> </td><td align="left"><br /><input class="admin_button" type="submit" name="admin_change_profile" value="Редактировать" /><br /><br /></td></tr> </table> </form>
<script type="text/javascript"> $(document).ready(function(){ // ---- Форма ----- var options = { // элемент, который будет обновлен по ответу сервера target: "#output", beforeSubmit: showRequest, // функция, вызываемая перед передачей success: showResponse, // функция, вызываемая при получении ответа timeout: 90000 // тайм-аут }; // привязываем событие submit к форме $("#myForm").submit(function() { $(this).ajaxSubmit(options); // !!! Важно !!! // всегда возвращаем false, чтобы предупредить стандартные // действия браузера (переход на страницу form.php) return false; }); // ---- Форма ----- });
// вызов перед передачей данных function showRequest(formData, jqForm, options) { // formData - массив; здесь используется $.param чтобы преобразовать его в строку для вывода в alert(), // (только в демонстрационных целях), но в самом плагине jQuery Form это совершается автоматически. var queryString = $.param(formData); // jqForm это jQuery объект, содержащий элементы формы. // Для доступа к элементам формы используйте // var formElement = jqForm[0]; // alert("Вот что мы передаем: \n\n" + queryString); // здесь можно вернуть false чтобы запретить отправку формы; // любое отличное от fals значение разрешит отправку формы. return true; } // вызов после получения ответа function showResponse(responseText, statusText) { // для обычного html ответа, первый аргумент - свойство responseText // объекта XMLHttpRequest // если применяется метод ajaxSubmit (или ajaxForm) с использованием опции dataType // установленной в "xml", первый аргумент - свойство responseXML // объекта XMLHttpRequest // если применяется метод ajaxSubmit (или ajaxForm) с использованием опции dataType // установленной в "json", первый аргумент - объек json, возвращенный сервером. // alert("Статус ответа сервера: " + statusText + "\n\nТекст ответа сервера: \n" + responseText + // "\n\nЦелевой элемент div обновиться этим текстом."); } </script>
|
А вот пока недописанный обработчик, потому что я не знаю как словить пришедшие данные, это как-то в примерах опускается | Код | <?PHP sleep(3); header('Content-Type: text/html; charset=utf-8'); if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { $time = date("H:i:s", time()); print 'Сервер отвечает: '.$time.' передача данных прошла успешно!'; } ?>
|
|