Как послать данные на сервер при помощи аякса + ВИДЕО
Сегодня я покажу вам пару приёмов использования джаваскрипт библиотеки Prototype. Туториал рассчитан для начинающих, но может и более опытные программисты узнают для себя что-то новое.
В этот раз я решил поэкспериментировать и записать туториал на видео. Пожалуйста посмотрите (лучше всего в режиме full screen) и скажите выкладывать ли мне в будущем подобные записи, или хватит и туториалов в текстовой форме.
В видео можете сразу перескочить на двадцатую секунду. Сначала была идея комментировать свои действия, и я специально оставил место для вступительной речи. Но оказалось, что записывать свою речь это не так просто и требует слишком много времени. Может в другой раз получится.
А тут тоже самое, но в более привычной всем текстовой форме:
Я сделаю простую форму, которая будет отсылать запрос на сервер при помощи аякса и показывать результат без перезагрузки страницы. После формы я сделал пустой div с id="result", в котором я хочу показать результат запроса. Почему в div-e я написал <?php echo $result; ?> я расскажу чуть позже.
Если оставить форму в таком виде, то никакого аякса у нас не будет, и браузер отправит её обычным POST запросом. Поэтому мы напишем скрипт который будет следить за этой формой и при событии "SUBMIT" сделает аякс запрос на сервер. На сервер он пошлёт значение текстового поля как параметр 'site'.
-
<script src="prototype.js" type="text/javascript"></script>
-
<script type="text/javascript" charset="utf-8">
-
// сначала ждём пока загрузится html
-
document.observe('contentloaded', function(){
-
// теперь начинаем следить за формой
-
$('myform').observe('submit', function(e){
-
new Ajax.Updater('result', 'index.php', {parameters:{site: $F('site')}});
-
// останавливаем submit event
-
e.stop();
-
})
-
})
-
</script>
И теперь собственно PHP скрипт. Я сделал обыкновенный array с двумя значениями: google и ajaxrussia. Если на сервер придёт запрос google, то сервер вернёт адрес http://www.google.com и если ajaxrussia, то http://www.ajaxrussia.com. В реальных условиях на этом месте может быть запрос к базе данных.
Проверка if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') нужна для того, чтобы при аякс запросе возвращать только адрес страницы, а не весь html текст. Если же у пользователя отключен джаваскрипт и форму он послал без аякса, то php скрипт вернёт всю страницу и посетитель всё равно увидит результат (для этого я и написал раньше <?php echo $result; ?>).
Результат, как всегда, можно посмотреть по этому адресу.
del.icio.us Забобрить!7 Comments so far
Leave a reply
Мне тоже удобней выкладывать текстовой вариант. Просто интересно было попробовать. Оставлю тогда я эту затею до лучших времён
Для видео должен быть повод. Например, показать то, что не может быть описано текстом и не имеет живого примера. Просто повторять то, что и так ясно из текста - трата времени в большей степени. Так что я тоже не за, чтобы все статьи без разбора шли с видео сопровождением.
Пасибо за подробное объяснение как это делают! А видео у мя фаервол заблокировал, но думаю я ничего не потерял )))
Удачи!
Хотел вот спросить у автора. Вы каким редактором пользуетесь?
Ответ прошу прислать мне в аську 228-487-852 или на почту ephis@ukr.net.
Спасибо.
>>Хотел вот спросить у автора. Вы каким редактором пользуетесь?
собственно мне тоже интересно было бы об этом узнать…. если не сложно напишите на kicker_2003@mail.ru
Это E-TextEditor.
http://www.e-texteditor.com/