Интернет Пресс - программы для Windows и Linux, статьи и материалы о компьютерах, бизнес-предложения.
Главная | Новости | Статьи | Веб-мастеру | Призы и подарки | Архив | RSS-канал | Карта сайта
Написать письмо автору сайта
Поиск
 

Статьи
Интернет
Software
Hardware
Операционные системы
Безопасность
Электронная коммерция
Пресс-релизы
Народные советы, медицина
SEO-поисковое продвижение сайтов
Автомобили
Строительство и недвижимость
Образование, спорт, отдых и туризм
Авторам
Добавить статью

Реклама
Trustlink_200x400

 

Интернет

Как передать данные в html-файл
 | 14:53:00 , 19 Ноября 2004

Автор: Alexey Godovnik , godovnik@mail.ru
http://mysite.hut.ru

Мало где вы сможете встретить рассматриваемые здесь вопросы. Почему-то большинство создателей учебников по 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";


или
values[0]="alex";
values[1]="28";
values[2]="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 и т.д. Найти ее можно здесь

Источник: http://www.izcity.com



Версия для печати Версия для печати

Оценок этой статье - 6. Средний балл - 4.60 Просмотров - 21265

Выставить оценку статье:


Читайте также:

  • Автозаполнение сайта
  • Защита каталогов с помощью .htaccess
  • CGI+SSI - пример счетчика
  • По Интернету - со скоростью света
  • Обзор самых популярных онлайн-СМИ
  • Электронные библиотеки
  • Популярность сайта
  • Как подружиться с поисковыми машинами
  • Оптимизация сайта: проблема выбора
  • Создание универсального выпадающего меню
  • Программы автоматической регистрации сайта
  • Игровые сайты сети
  • Сравнительный тест эффективности языков программирования для WEB
  • Советы по созданию и раскрутке сайта
  • Как бесплатно сайт построить:
  • Java-апплеты и Gif-анимация
  • WWW - почтой
  • Сокеты и Java
  • Вебсервер в домашних условиях
  • Некоторые секреты IP-протокола

    Все статьи рубрики Интернет


  •  

    Реклама

    Оценка стоимости бытовой техники независимая оценка стоимости оборудования и техники.

    Поиск
     

    Размещение рекламы | Контакты

    Главная | Новости | Статьи | Веб-мастеру | Призы и подарки | Архив | RSS-канал | Карта сайта

    Вверх
    Copyright © 2004 - 2024 г. При перепечатке гиперссылка на «Интернет Пресс» обязательна.