RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

Передача и обработка данных

Автор: pauk Сайт: http://www.pauk2001.h1.ru     Рейтинг: N/A из 7       <<НАЗАД
   
   Мало где вы сможете встретить рассматриваемые здесь вопросы. Почему-то большинство создателей учебников по JavaScript и DHTML старательно умалчивают данный аспект. Меж тем тема интересная, не сложная и весьма полезная.
   Как передать данные в *.html-файл?
   Очень просто - через его адрес (URL). После адреса ставите знак вопроса и после него задаете параметр, который хотите сообщить файлу. Если нужно передать несколько параметров, разделяете их амперсандом. Например, так
   "file.html?1234" или
   "file.html?12&42&param&78456"
   
   Можно передавать данные из формы, используя метод get. В этом случае вызов файла будет выглядеть как
   "file.html?name1=value1&...nameX=valueX"
   
   Как получить переданные данные
   Как вы догадываетесь, обрабатывается все с использованием JavaScript.
   var ex_url=location.search.substring(1);
   То бишь мы записываем в переменную ex_url все то, что находится после знака вопроса. Если вы передаете один параметр, то все - обрабатывайте ex_url (кстати, ее тип - строка) и в зависимости от ее значения что-либо делайте. Если вы передaвали несколько параметров, надо их разделить.
   var param=ex_url.split('&');
   Теперь мы получили массив param, содержащий переданные значения. Если вы передавали данные через форму, то надо еще избавиться от знаков равенства.
   var values = new Array();
   for(i=0; i<param.length;i++) {
   var b = param[i].split('=');
   values[b[0]] = unescape(b[1]);
   }
   Теперь все данные занесены в хеш. Если строка запроса была, например,
   file.html?name=alex&age=28&left=right"
   то получили массив
   values[name]="alex";
   values[age]="28";
   values[left]="right";
   
   Пример использования
   В качестве примера рассмотрим такую ситуацию. Есть набор фотографий и, помимо обычной галереи с предпросмотром, нужно организовать слайд-шоу. Можно, конечно, изменять свойство src картинок, но Netscape, например, не позволяет при этом изменять размеры и все картинки будут втиснуты в рамки самой первой, следовательно, искаженными. К тому же, желательно, чтобы при просмотре новой фотографии обновлялись и баннеры, а вставлять для каждого свой скрипт неохота. Поэтому сделаем следующее:
   Для простоты предположим, что все фотографии сохранены в файлах 1.jpg, 2.jpg, 3.jpg и так далее. Делаем страничку, а в том месте, где должна быть фотография, вставляем следующий скрипт.
   
   <table>
   <script language=javascript>
   max_num=100;
   ex_url=location.search.substring(1);
   if (ex_url.length==0) {
   number=1;
   }
   else {
   number=parseInt(ex_url,10);
   }
   prev=number-1;
   next=number+1;
   if (number<2) {
   }
   else {
   document.write("<a href=file.html?"+prev+">back</a>");
   }
   if (number==max_num) {
   }
   else {
   document.write("<a href=file.html?"+next+">next</a><br>");
   }
   document.write("<img src="+number+".jpg>");
   </script></table>
   
   Комментарии: max_num - число фотографий. Я написал 100, но в принципе их число неограничено, вставьте свое значение. над картинкой выводятся ccылки на предыдущую и последующую. Для первой нет предыдущей (но вы можете вставить ссылку на другой файл), для последней нет следующей (и опять вы можете вставить ссылку на другой файл). Eсли никакие параметры не передаются, то есть не указан номер просматриваемой фотографии, показывается первая. Для простоты примера я не вставлял "защиту от дураков" - то есть если кто-то решит передать в файл не число, а просто набор символов. В этом случае просто не будет никакой картинки.
   
   Скорее всего, при проверкe работоспособности описанного выше метода в домашних условиях, у вас возникнут проблемы. Дело в том, что для приема данных нужен сервер. Windows без наворотов такие запросы не понимает - выдает радостное сообщение. Если у вас не стоит Apache или Windows NT, и вы не хотите с ними возиться, установите Small HTTP Server. Эта манюсенькая программа (размером менее, чем сумма всех баннеров на данной странице) позволит вам тестировать в домашних условиях CGI, SSI, PHP и т.д.
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool