Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Организация быстрого поиска с помощью <SELECT>
 
 автор: Sake   (17.10.2008 в 06:57)   письмо автору
 
 

Всех с добрым утром и удачного всем дня! Подскажите пожалуйста, как сделать, чтобы при выборе определённого значения из списка (<SELECT>), показывались определённые ссылки.
Например, есть список:

<select name="spisok" onChange="selChange(this.form)">
    <option value="1">Текст 1</option>
    <option value="2">Текст 2</option> 
    <option value="3">Текст 3</option>
    </select>


При выборе пользователем "Текст 1" - ниже списка выводятся ссылки 1.0, 1.1, 1.3 (например).
При выборе пользователем "Текст 2" - ниже списка выводятся ссылки 2.0, 2.1, 2.3, а ссылки 1.0, 1.1, 1.3 - исчезают.

Вот , заранее благодарен!

  Ответить  
 
 автор: Nytrogen   (17.10.2008 в 14:42)   письмо автору
 
   для: Sake   (17.10.2008 в 06:57)
 

Не исключаю, что есть вариант и проще, но можно попробовать так:
  <select id="spisok" name="spisok" onchange="selChange(this.form); outputLinks(this.value*1);">
    <option value="1">Текст 1</option>
    <option value="2">Текст 2</option> 
    <option value="3">Текст 3</option>
  </select>

  <div id="links">
  </div>

  <script>
    function outputLinks(section) {
      var linksHTML = "";
      switch (section) {
        case 1 : linksHTML =
"<a href=#>Link 1.0</a><br>" +
"<a href=#>Link 1.1</a><br>" +
"<a href=#>Link 1.2</a><br>"; break;
        case 2 : linksHTML =
"<a href=#>Link 2.0</a><br>" +
"<a href=#>Link 2.1</a><br>" +
"<a href=#>Link 2.2</a><br>"; break;
        case 3 : linksHTML =
"<a href=#>Link 3.0</a><br>" +
"<a href=#>Link 3.1</a><br>" +
"<a href=#>Link 3.2</a><br>"; break;
      }
      document.getElementById("links").innerHTML = linksHTML;
    }
    outputLinks(document.getElementById("spisok").value*1);
  </script>

  Ответить  
 
 автор: Sake   (17.10.2008 в 15:37)   письмо автору
 
   для: Nytrogen   (17.10.2008 в 14:42)
 

Спасибо, но скрипт глючит: при выборе из списка пункта 2 или 3 - происходит какая-то ошибка! И ещё мне кажется, что name и Id у списка совпадать не должны!

  Ответить  
 
 автор: PAT   (17.10.2008 в 15:45)   письмо автору
 
   для: Sake   (17.10.2008 в 15:37)
 

>"скрипт глючит"

Уберите ненужные куски кода:
selChange(this.form); 
и
outputLinks(document.getElementById("spisok").value*1);


>мне кажется, что name и Id у списка совпадать не должны!

Спецификация W3C никаких ограничений по этому поводу не даёт. Т.е. вполне могут и совпадать.

  Ответить  
 
 автор: Nytrogen   (17.10.2008 в 15:51)   письмо автору
 
   для: PAT   (17.10.2008 в 15:45)
 

selChange(this.form); я оставил, ибо думал, что это нужная функция, которая где-то определена. Раз нет, то действительно уберите, так как вызов неопределённой функции и генерит ошибку.

outputLinks(document.getElementById("spisok").value*1); - если убрать, то при открытии страницы никакие ссылки не будут отображены. Это по Вашему усмотрению.

  Ответить  
 
 автор: Sake   (20.10.2008 в 09:47)   письмо автору
 
   для: Nytrogen   (17.10.2008 в 15:51)
 

Вот спасибо!!! Всё как надо работает! :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования