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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
lnocommentl
Отправлено: 01 Августа, 2012 - 20:44:17
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2012  


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




Такая задача. Есть 2 массива, и есть цыкл
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.        
  3.         $parent = array(1 =>'Menu', 2 => 'Menu_2', 3 => 'Menu_3') ;
  4.         $sub = array(1 => 'Sub_menu', 2 =>'sub_menu2') ;
  5.        
  6.         foreach($parent as $key => $value){
  7.             echo "<a href = \"?id={$key}\">{$value}</a><br /> " ;
  8.         }
  9. ?>
  10.  


Помогите пожалуйста доделать цыкл что бы при нажатии на Mune под ним появлялось Sub_menu. Не могу придумать как это сделать...
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 20:50:23
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




в цЫкле пишете для каждого пункта меню сразу и подменю
но с стилем display:none
а в файле стилей пишете отображение по наведению
вот
 
 Top
lnocommentl
Отправлено: 01 Августа, 2012 - 20:58:38
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2012  


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




я извиняюсь а как в цикле писать и для под меню ?Улыбка
понять немогу...я делаю вот так
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. foreach($parent as $key => $value){
  4.             echo "<a href = \"?id={$key}\">{$value}</a><br /> " ;
  5.             if($_GET['id']){
  6.                            foreach($sub as $key => $value){
  7.             echo "$value " ;
  8. }
  9. }
  10.         }
  11.  


и он мне 3 раза выводит то что в масиве находится...
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 21:00:49
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




PHP:
скопировать код в буфер обмена
  1. foreach($parent as $key => $value){
  2.             echo "<a href = \"?id={$key}\">{$value}</a><br /> " ;
  3.             if($_GET['id']){
  4.                          
  5.             echo $sub[$key] ;
  6.  
  7. }
  8.         }

(Отредактировано автором: 01 Августа, 2012 - 21:01:06)

 
 Top
lnocommentl
Отправлено: 01 Августа, 2012 - 21:09:57
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2012  


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




Прости еще за один вопрос) а если 1 значению родителя принадлежит 2 или более дочерних менюшек?
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 21:12:53
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




и как это выглядеть по твоему будет)))
наводим на пункт и во все стороны все раскрывается?)))
аа...понял
делай элементы подменю вложенными массивами
и пробегай по ним
 
 Top
lnocommentl
Отправлено: 01 Августа, 2012 - 21:17:58
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июль 2012  


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




У меня просто такая штука. есть 2 таблицы, с горем по палам сделал что бы с таблицы 1 где лежит id и menu (родители) выводилось меню, а вторая таблица дочерняя, при нажатии на родителя что бы выводились дочерний... вот на этом и застрял...нажимаю на ссылку а он выводит под каждый ссылкой по 3 раза одно и тоже...уже трое суток сижу над этим меню)
 
 Top
DelphinPRO
Отправлено: 01 Августа, 2012 - 21:23:30
Post Id



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


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


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




Эх, хотел написать как правильно организовывать в БД и выводить на страницу многоуровневое меню с помощью рекурсии, но, во-первых, чую, вопросов будет еще больше, во-вторых, уже писал, можно посмотреть в списке моих ответов.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 21:25:05
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




рекурсии - зло ))
хотя тут они маленькие...но это уже на подсознании))
 
 Top
DelphinPRO
Отправлено: 01 Августа, 2012 - 21:29:59
Post Id



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


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


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




рекурсия - иногда единственный выход )

А если тебе заранее неизвестен уровень вложенности меню?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 21:31:06
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




DelphinPRO цикл запросов по дочерним рядам бд))
пока не пропадут оные))

(Отредактировано автором: 01 Августа, 2012 - 21:32:07)

 
 Top
DelphinPRO
Отправлено: 01 Августа, 2012 - 21:38:24
Post Id



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


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


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




ну эт еще большее извращение чем рекурсия Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 21:40:34
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




почему?
разве в рекурсии не совершаются запросы к бд
пс: наверное всетки надо прочитать твой пост об этом))
пока все на уровне догадок))
 
 Top
DelphinPRO
Отправлено: 01 Августа, 2012 - 21:47:30
Post Id



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


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


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




там все просто

имеем таблицу

ID_menu | ID_menuitem | ID_parent | title

ID_menu - это на случай, если требуется хранить несколько разных менюшек

одним запросом выдергиваем все элементы для конкретного меню

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM menu WHERE ID_menu = 1

потом на стороне php строим дерево по ID_menuitem и ID_parent
и рекусией выводим это дерево в виде вложенных списков.

Только, боюсь, автору топика нужно будет подробнее разжевывать Недовольство, огорчение


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 01 Августа, 2012 - 21:50:16
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




аа...ну ясн
но всеравно в большинстве случаев можно рекурсию в цикл переделать
взгляни на реализацию
возможно я прав?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB