Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сделать меню динамическое

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как сделать меню динамическое
Death_Lord
Отправлено: 02 Марта, 2014 - 22:19:48
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




И так мне нужно сделать так что бы в 1 <select> я выбрал 1 из 3 элементов списка , потом если я нажму на + у меня открывается еще один <select> в котором я уже должен выбрать другой элемент но из двух других что остались . У меня получилось сделать почти как надо но как сделать динамичную отброс выбранного елемента я не понимаю . Прикладываю свой скрипт и фотографию результата работы Помогите сделать ...

CODE (html):
скопировать код в буфер обмена
  1.  <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4.         <meta http-equiv="content-type" content="text/html" />
  5.         <meta name="author" content="testr" />
  6.         <title>Untitled 2</title>
  7.     <style>
  8.  /* контейнер просто содержит узлы.
  9.  Узел сам будет отвечать за свой отступ */
  10. .Container {
  11.         padding: 0;
  12.         margin: 0;
  13. }
  14.  
  15. .Container li {
  16.         list-style-type: none; /* убрать кружочки/точечки */
  17. }
  18. /* узел отодвинут от левой стенки контейнера на 18px
  19.     благодаря этим отступам вложенные узлы формируют иерархию
  20.  */
  21. .Node {
  22.     margin-left: 18px;
  23.     zoom: 1; /* спецсвойство против багов IE6,7. Ставит hasLayout */
  24. }
  25.  
  26. /* Корневой узел от родительского контейнера не отодвинут.
  27.    Ему же не надо демонстрировать отступом, чей он сын.
  28.    Это правило идет после .Node, поэтому имеет более высокий приоритет
  29.    Так что class="Node IsRoot" дает margin-left:0
  30. */
  31. .IsRoot {
  32.     margin-left: 0;
  33. }
  34. /* иконка скрытого/раскрытого поддерева или листа
  35.     сами иконки идут дальше, здесь общие свойства
  36.  */
  37. .Expand {
  38.     width: 18px;
  39.     height: 18px;
  40.     /* принцип двухколоночной верстки. */
  41.     /* float:left и width дива Expand + margin-left дива Content */
  42.     float: left;
  43. }
  44.  
  45. /* содержание (заголовок) узла */
  46.  .Content {
  47.     /* чтобы не налезать на Expand */
  48.     margin-left:18px;
  49.     /* высота заголовка - как минимум равна Expand
  50.         Т.е правая колонка всегда выше или равна левой.
  51.         Иначе нижний float будет пытаться разместиться на получившейся ступеньке
  52.     */    
  53.     min-height: 18px;
  54. }
  55.  
  56.  /* все правила после * html выполняет только IE6 */
  57. * html .Content {
  58.     height: 18px; /* аналог min-height для IE6 */
  59. }
  60. /* открытое поддерево */
  61. .ExpandOpen .Expand {  
  62.     background-image: url(minus.gif);
  63. }
  64.  
  65. /* закрытое поддерево */
  66. .ExpandClosed .Expand {
  67.     background-image:url(plus.gif);
  68. }
  69.  
  70. /* лист */
  71. .ExpandLeaf .Expand {
  72.     background-image: url(file:///C|/Users/Skoretskiy/Desktop/leaf.gif);
  73. }
  74. .Node {
  75.     margin-left: 18px;
  76.     zoom: 1;
  77.     /* линия слева образуется повторяющимся фоновым рисунком */
  78.     background-image : url(file:///C|/Users/Skoretskiy/Desktop/i.gif);
  79.     background-position : top left;
  80.     background-repeat : repeat-y;
  81. }
  82. /* это правило - ниже .Node, поэтому имеет больший приоритет */
  83. .IsLast {
  84.     /* добавить соединительную черточку наверх */
  85.     background-image: url(file:///C|/Users/Skoretskiy/Desktop/i_hulf.gif);
  86.     background-repeat : no-repeat;
  87. }
  88. .ExpandOpen .Container {
  89.         display: block;
  90. }
  91.  
  92. .ExpandClosed .Container {
  93.         display: none;
  94. }
  95. .ExpandOpen .Expand, .ExpandClosed .Expand {
  96.         cursor: pointer; /* иконки скрытия-раскрытия */
  97. }
  98.  
  99. .ExpandLeaf .Expand {
  100.         cursor: auto; /* листовой узел */
  101. }
  102.  
  103.    
  104.     </style>
  105. </head>
  106.  
  107. <body>
  108.  
  109.  
  110. <div onclick="tree_toggle(arguments[0])">
  111. <div>Make a choice</div>
  112. <ul class="Container">
  113.   <li class="Node IsRoot ExpandClosed">
  114.     <div class="Expand"></div>
  115.     <div class="Content">
  116.    
  117.  
  118. <form action="mail.php" method="post">
  119. <select name=color>
  120. <option></option></option>
  121. <option value=1>Товар</option>
  122. <option value=2>Договор</option>
  123. <option value=3 >Клиент</option>
  124. </select>
  125. <input type=submit value="Выбрать">
  126. </form>
  127.  
  128.     </div>
  129.  
  130.     <ul class="Container">
  131.    
  132.       <li class="Node ExpandClosed">
  133.      
  134.         <div class="Expand"></div>
  135.         <div class="Content"><select name=color>
  136. <option></option></option>
  137. <option value=1>Товар</option>
  138. <option value=2>Договор</option>
  139. <option value=3 >Клиент</option>
  140. </select></div>
  141.          <ul class="Container">
  142.    
  143.       <li class="Node ExpandClosed">
  144.      
  145.         <div class="Expand"></div>
  146.         <div class="Content">Item 1.1</div>
  147.         <ul class="Container">
  148.           <li class="Node ExpandLeaf IsLast">
  149.             <div class="Expand"></div>
  150.             <div class="Content">Item 1.1.2</div>
  151.           </li>
  152.         </ul>
  153.       </li>
  154.  
  155.     </ul>
  156.       </li>
  157.  
  158.     </ul>
  159.   </li>
  160.  
  161.  
  162. </ul>
  163.  
  164. </div>
  165.  
  166. </body>
  167. </html>
  168. <script type="text/javascript">
  169. function tree_toggle(event) {
  170.         event = event || window.event
  171.         var clickedElem = event.target || event.srcElement
  172.  
  173.         if (!hasClass(clickedElem, 'Expand')) {
  174.                 return // клик не там
  175.         }
  176.  
  177.         // Node, на который кликнули
  178.         var node = clickedElem.parentNode
  179.         if (hasClass(node, 'ExpandLeaf')) {
  180.                 return // клик на листе
  181.         }
  182.  
  183.         // определить новый класс для узла
  184.         var newClass = hasClass(node, 'ExpandOpen') ? 'ExpandClosed' : 'ExpandOpen'
  185.         // заменить текущий класс на newClass
  186.         // регексп находит отдельно стоящий open|close и меняет на newClass
  187.         var re =  /(^|\s)(ExpandOpen|ExpandClosed)(\s|$)/
  188.         node.className = node.className.replace(re, '$1'+newClass+'$3')
  189. }
  190.  
  191.  
  192. function hasClass(elem, className) {
  193.         return new RegExp("(^|\\s)"+className+"(\\s|$)").test(elem.className)
  194. }
  195. </script>

Прикреплено изображение (Нажмите для увеличения)
а.png
 
 Top
IllusionMH
Отправлено: 03 Марта, 2014 - 11:18:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Death_Lord, копируйте предыдущий селект и удаляйте из него опцию с значением предыдущего селекта.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB