То, что вы спрашиваете, ничего не значит для Stackoverflow, по моему мнению.Я пытался сделать пример для вас, но это занимает очень много времени (больше часа сейчас).Моя общая идея на данный момент такова:
Создать класс model
, который обрабатывает соединение с вашей базой данных.Сохраните уже отвеченные категории.Затем спросите model
, есть ли еще категории для выбора.Например, у вас есть категории
$categories = array(
'Intel' => array(
'i7',
'i9'
),
'AMD' => array(
'Ryzen',
'Athlon'
)
);
. Пользователь начинает с первого вопроса, который является фиксированным.
<legend for='0'>Which brand do you want?</legend>
<select id='0'>
<option value='1'>Intel</option>
<option value='2'>AMD</option>
</select>
Ваша база данных содержит таблицу categories [id, name, parent]
.Первая категория - манекен.Таблица может выглядеть так:
+---+--------+------+
| 0 | NULL | NULL |
| 1 | Intel | 0 |
| 2 | AMD | 0 |
| 3 | i7 | 1 |
| 4 | i9 | 1 |
| 5 | Ryzen | 2 |
| 6 | Athlon | 2 |
+---+--------+------+
По умолчанию вы используете id = 0
в качестве «выбранного».Затем будут отображаться подкатегории, то есть категории с текущей категорией (0
) в качестве их родителей.
Каждый раз, когда пользователь выбирает одну ячейку выбора, у вас есть выбранный идентификатор.Используя этот идентификатор, вы можете выполнять итерации по своей таблице (используя неэффективный цикл php
) и сохранять все родительские идентификаторы (таким образом, родитель, дедушка, внучатый родитель, ...) до тех пор, пока родительский элемент не станет равным 0
,Родительские идентификаторы вместе с выбранным вами ответом дадут вам «путь» к этой текущей категории.Вы знаете все ранее выбранные категории.
В этом случае таблица вашего продукта может выглядеть следующим образом: product[id, category_id, name, ...]
.
Всякий раз, когда пользователь меняет категорию, вам нужно будет выбрать и отобразить все категории, которыеПользователь выбрал один в качестве родителя.Кроме того, вам нужно отобразить все продукты с указанным category_id
(пользователь выбрал первый).
Затем можно сохранить идентификаторы продуктов в таблице basket
.Эта таблица содержит все прокаты, купленные клиентом.
Я бы сделал это с помощью шаблона в html.Это покажет ранее выбранные категории.Категории могут быть проанализированы с помощью этого шаблона, чтобы показать его пользователю.Кроме того, я бы использовал ajax-запросы для ускорения загрузки страницы и предотвращения загрузки снова и снова.