Я создаю магазин с категориями. Чего я хочу достичь:
Main category sub category sub category of the sub category another main one
На данный момент у меня есть структура таблицы, например:
CREATE TABLE `categories` ( `category_id` int(11) NOT NULL, `main_category` varchar(50) NOT NULL, `sub_category` varchar(50) NOT NULL, `category_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `categories` -- INSERT INTO `categories` (`category_id`, `main_category`, `sub_category`, `category_date`) VALUES (1, 'Electronics', 'Laptops', '2016-02-21 13:49:14'), -- -- Indexes for dumped tables --
Я хочу создать подкатегории, чтобы пользователь мог щелкнуть основную категорию, которая покажет все подкатегории, или щелкните подкатегорию, в которой будут показаны подкатегории подкатегории, или щелкните подкатегорию.
В моей таблице продуктов я кулачок, используя идентификатор категории, поэтому он может быть присоединен к категории, вот мой php:
public static function category_form() { echo '<select name="categories" class="form-control col-sm-12">'; echo '<option>'.System::translate('Choose an option').'</option>'; $i = 0; $mainCatName = ''; foreach(SELF::categories() as $category): if($category->main_category != $mainCatName) { $mainCatName = $category->main_category; if($i = 0) { echo '<optgroup label="'.$category->main_category.'">'; } else { echo ''; echo '<optgroup label="'.$category->main_category.'">'; } } echo '<option value="'.System::escape($category->sub_category).'">'.System::escape($category->sub_category).'</option>'; $i++; endforeach; echo '</select>'; }