Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка формы с применением jQuery 
V
    Опции темы
supercelt
Дата 28.4.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Добрый вечер!. Помогите пож разобраться. Перерыл много доков по 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">&nbsp;</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.' передача данных прошла успешно!';
}
?>



PM   Вверх
Aliance
Дата 5.5.2009, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 17
Всего: 137



Словить очень просто, если ты посылаешь данные методом post, то через глобальный массив $_POST, по аналогии и с get.
А в чем еще проблема?
PM MAIL WWW ICQ Skype   Вверх
supercelt
Дата 5.5.2009, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Aliance, Да, ты прав, я вот вот недавно догадался). Промто методом пост и всё). А больше пока ни в чём проблем нету)

Это сообщение отредактировал(а) Aliance - 7.5.2009, 12:05
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.