2

Пользователь должен выбрать тип транспортного средства, а затем, основываясь на его выборе, у него есть варианты выбора модели автомобиля, тогда на основании этого выбора у него будет возможность просмотра специальные цвета, доступные для этой модели.Django JQuery: на основе выбора, отображения дальнейших вариантов выбора

Для каждого автомобиля, модели и цвета имеются отдельные модели django, в которых каждый экземпляр транспортного средства имеет множество моделей (от многих до многих), и каждая модель имеет цвета (от многих до многих полей).

Как создать шаблон, чтобы пользователь мог динамически это делать? Я не хочу, чтобы меня перенаправляли на разные виды. Я думаю, что мне нужно будет использовать jquery, чтобы пользователь мог выбрать автомобиль из раскрывающегося списка, а затем по его выбору появляется другое раскрывающееся окно и т. Д.

Любые идеи?

ответ

4

Моим подходом было бы использовать ajax для динамического изменения содержимого полей выбора. Существует много способов реализовать это. Вот один ...

  • Создание 3 Выберите коробки (автомобиль, модель, цвет)
  • Заполняем первый со всеми пустой записи плюс все транспортные средства
  • Ловушка OnChange событие для транспортного средства и модели и создать соответствующие функции javascript.

Вот Судо код функции vehicleChange:

  • Очистить все модели выбрать параметры
  • Очистить все цвета выбрать параметры
  • выборки модели выбора параметров с сервера с помощью AJAX
  • Заполнить модель select box.

Вот Судо код функции modelChange:

  • Очистить цвет выбрать параметры
  • начнут извлекать цвета выбора параметров с сервера с помощью AJAX
  • Заселите цвета выберите поле.

Так что теперь, что происходит это:

  • Поскольку вы используете Аякса ваша страница не будет обновляться или перенаправлять.
  • Ваша модель для «модели» и «цвета» остается максимально простой
  • Ваш взгляд на «модель» и «цвет» становится очень маленьким.Возможный вид даст что-то вроде:

    < значения опции = "Red" > Red значения </опция >
    < варианта = "Белые" > Значения синего </опция >
    < варианта = "Blue" > Синий </опция >

чтобы изменить параметры в отдельных коробках можно использовать JQuery, чтобы захватить Сель ect и замените html результатами вызова ajax.

+0

: Есть ли какие-либо решения, если мы ранее не знали количество опций? Я задал свой вопрос как отдельный вопрос: http: //stackoverflow.com/questions/16505587/django-template-display-dynamic-data-filed-according-to-the-content-of-the-dat – Lahiruzz

Смежные вопросы