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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Select multiple и div style="display: none"

Сообщения:  [1-10]   [11-14] 

 
 автор: gOFREe   (09.09.2011 в 11:06)   письмо автору
 
   для: Scrum   (08.09.2011 в 23:34)
 

Ну вот я и не понимаю ) Вот мой последний пример.

  Ответить  
 
 автор: Scrum   (08.09.2011 в 23:34)   письмо автору
 
   для: gOFREe   (08.09.2011 в 23:06)
 

Поподробнее.
Почему они должны выводиться ?

  Ответить  
 
 автор: gOFREe   (08.09.2011 в 23:08)   письмо автору
 
   для: Scrum   (08.09.2011 в 22:39)
 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
  <title></title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <script type="text/javascript">
function sendReq (obj)
{
    for (var i = 0; i < obj.length; i++) {
        if (obj[i].selected) {
                document.getElementById("scnd"+obj[i].value).style.display = "inline";
            } else {
               document.getElementById("scnd"+obj[i].value).style.display = "none";
            }

    }
}
  </script>
</head>

<body>
<select name="razdel[]" multiple onclick="sendReq(this)">
<option value="1">Фрукты</option>
<option value="2">Орехи</option>
<option value="3">Овощи</option>
<option value="5">Хрен</option>
<option value="7">Яблоки</option>
<option value="9">Соки</option>
</select>
<div id="scnd1" style="display: none;">Фрукты</div>
<div id="scnd2" style="display: none;">Орехи</div>
<div id="scnd3" style="display: none;">Овощи</div>

<div id="scnd7" style="display: none;">Яблоки</div>
<div id="scnd9" style="display: none;">Соки</div>
</body>

</html>

  Ответить  
 
 автор: gOFREe   (08.09.2011 в 23:06)   письмо автору
 
   для: Scrum   (08.09.2011 в 22:46)
 

То что не выводится это значение, это я понимаю, а почему не выводятся выбранные позиции после него?

  Ответить  
 
 автор: Scrum   (08.09.2011 в 22:46)   письмо автору
 
   для: gOFREe   (08.09.2011 в 22:34)
 


document.getElementById("scnd"+obj[i].value).style.display = "inline";


грубо говоря ищет элемент с id равным scnd(значение option) т.е. <element id="scndЗначение option">
и соответственно если он отсутствует то что должно выводиться ?

  Ответить  
 
 автор: Scrum   (08.09.2011 в 22:39)   письмо автору
 
   для: gOFREe   (08.09.2011 в 22:00)
 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
  <title></title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <script type="text/javascript">
function sendReq (obj)
{
    for (var i = 0; i < obj.length; i++) {
        if (obj[i].selected) {
                document.getElementById("scnd"+obj[i].value).style.display = "inline";
            } else {
               document.getElementById("scnd"+obj[i].value).style.display = "none";
            }

    }
}
  </script>
</head>

<body>
<select name="razdel[]" multiple onclick="sendReq(this)">
<option value="1">Фрукты</option>
<option value="2">Орехи</option>
<option value="3">Овощи</option>

<option value="7">Яблоки</option>
<option value="9">Соки</option>
</select>
<div id="scnd1" style="display: none;">Фрукты</div>
<div id="scnd2" style="display: none;">Орехи</div>
<div id="scnd3" style="display: none;">Овощи</div>

<div id="scnd7" style="display: none;">Яблоки</div>
<div id="scnd9" style="display: none;">Соки</div>
</body>

</html>

  Ответить  
 
 автор: gOFREe   (08.09.2011 в 22:34)   письмо автору
 
   для: gOFREe   (08.09.2011 в 22:05)
 

Не пойму еще одну вещь, почему если отсутствует например <div id="scnd2" style="display: none;">Орехи</div> , то если я в селекте выбираю после значения 2, то уже ничего не выводится

  Ответить  
 
 автор: gOFREe   (08.09.2011 в 22:05)   письмо автору
 
   для: gOFREe   (08.09.2011 в 22:00)
 

Во, попрвил.
Спасибо!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
  <title></title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <script type="text/javascript">
function sendReq (obj)
{
    for (var i = 0; i < obj.length; i++) {
        if (obj[i].selected) {
                document.getElementById("scnd"+obj[i].value).style.display = "inline";
            } else {
               document.getElementById("scnd"+obj[i].value).style.display = "none";
            }

    }
}
  </script>
</head>

<body>
<select name="razdel[]" multiple onclick="sendReq(this)">
<option value="1">Фрукты</option>
<option value="2">Орехи</option>
<option value="3">Овощи</option>
</select>
<div id="scnd1" style="display: none;">Фрукты</div>
<div id="scnd2" style="display: none;">Орехи</div>
<div id="scnd3" style="display: none;">Овощи</div>
</body>

</html> 

  Ответить  
 
 автор: gOFREe   (08.09.2011 в 22:00)   письмо автору
 
   для: Scrum   (08.09.2011 в 21:42)
 

Спасибо огромное!
А как поступить если value значения идут в разнобой? ;)

<select name="razdel[]" multiple onclick="sendReq(this)">
<option value="3">Фрукты</option>
<option value="7">Орехи</option>
<option value="9">Овощи</option>
</select>

  Ответить  
 
 автор: Scrum   (08.09.2011 в 21:42)   письмо автору
 
   для: gOFREe   (08.09.2011 в 21:06)
 

Вроде как так.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
  <title></title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <script type="text/javascript">
function sendReq (obj)
{
    for (var i = 0; i < obj.length; i++) {
        if (obj[i].selected) {
                document.getElementById("scnd"+(i+1)).style.display = "inline";
            } else {
               document.getElementById("scnd"+(i+1)).style.display = "none";
            }

    }
}
  </script>
</head>

<body>
<select name="razdel[]" multiple onclick="sendReq(this)">
<option value="1">Фрукты</option>
<option value="2">Орехи</option>
<option value="3">Овощи</option>
</select>
<div id="scnd1" style="display: none;">Фрукты</div>
<div id="scnd2" style="display: none;">Орехи</div>
<div id="scnd3" style="display: none;">Овощи</div>
</body>

</html>

  Ответить  

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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