Дворівневе меню на php і mysql - stack overflow російською

Допоможіть, будь ласка, зробити дворівневе меню. Я на процедурному стилі розумію як його зробити, а ось на ООП чет не виходить. Я використовую фреймворк Codeigniter. в моделі є функція для виведення основного рівня:

в базі в таблиці menu поля:

для основних пунктів меню в поле parent я прописав none. а ось для підпунктів, якщо підпункт відноситься до фільмів, то parent films і т. д. Скажіть чи правильно почав робити і як вивести підміню для кожного основного меню?

заданий 10 дек '13 о 16:35

витягни з таблиці всі, потім через рекурсію зроби дерево по parent обертаючи кожен рівень в '

    'І кожна внутрішня підструктура в черговий'
      '- вийде готовий html, c допомогою css попрячь посилання внутрішнього рівня (ul ul), за допомогою js (можна реалізувати і на стороні php) нескладно знайти в дереві посилань поточний URL і додати класи (припустимо' active ') самому елементу' li ' і ланцюжку 'li' елементів вище рівнем, в css відкрити 'ul' який знаходиться в активному елементі 'li' (ul .active) - все. можна додати відкривачки / закривашка субменю - js / css - zippp 11 дек '13 в 8:25

      в теорії то воно просто, а не справі не виходить - sew810i9 12 дек '13 о 10:50

      По-перше, краще parent зробити числовими, у вас адже у кожного поля є свій ID.

      Реалізація приблизно така:

      Потім потрібно злегка змінити цей масив:

      Тепрь вийшло наступне:

      Розберіть кожен пункт окремо, щоб зрозуміти що до чого. Складного тут зовсім нічого немає.

      P.S. Код писав швидко, не тестував, так що якщо десь буде загвостка, пишіть я перевірив ще раз.

      розібрався! Використав метод _remap () з Codeigniter яка викликається за замовчуванням. Там в залежності від сегмента url виконуються ті чи інші дії. Хоча можна було і самому написати метод, як ви сказали. Я по початку так і хотів, але мабуть десь, де щось пропустив. А ось якщо зайти далі. Створив я пункт меню, наприклад "Програми", повинен адже бути контролер наприклад "programs". Так до ось тут як можна вирішити задачу, що б контролер створювався? Або як це робиться? - sew810i9 22 дек '13 в 10:04

      Схожі статті