раскрывающийся список зависимых уровней N - PullRequest
0 голосов
/ 25 февраля 2019

новичок в PHP, очень много искал и не мог найти ссылки, которые помогли бы мне написать код.Видел много постов о зависимом раскрывающемся меню, например, страна / штат / город, или отображал несколько раскрывающихся значений ...

, что моя идея похожа на систему корзины покупок, но это не таккорзину, просто клиент, заполните форму, чтобы владелец сайта знал, какой продукт он заинтересован в получении дополнительной информации.

При выборе 1-го основного раскрывающегося меню, такого как КАТЕГОРИИ, оно будет отображать связанные ПОДКАТЕГОРИИ, и пока не появятся подкатегории, не имеющие больше подкатегорий, и отобразятся соответствующие последние подкатегории.вверх связанный продукт (ы).Таким образом, это не предопределенная опция / выбор, поскольку владелец сайта может просто начать с 3-х уровней подкатегорий и / или позже добавить до 7 или более уровней подкатегорий, если необходимо.

Был ли поиск в Google и найден скрипт, который может разрешать множественный выбор с выпадающим списком, однако это хорошо только для выбора из того же одного выпадающего меню, не практично, если пользователь хочет иметь новые категории и / илиновые подкатегории, поэтому необходимо иметь опции из выпадающего списка, чтобы пользователь мог выбрать OPTION1: завершить добавление продуктов или OPTION2: продолжить добавлять новые категории / продукты.

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


таблицы базы данных включают в себя:

клиенты / категории / продукты / товары по категориям


форма:

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


действия (3):

отправьте форму, чтобы сохранить ее в базе данных, отобразить выбранный клиентом продуктна экране, и отправьте результат формы по электронной почте владельцу веб-сайта и клиентам.Большое спасибо!

1 Ответ

0 голосов
/ 25 февраля 2019

То, что вы спрашиваете, ничего не значит для 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-запросы для ускорения загрузки страницы и предотвращения загрузки снова и снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...