Создание зависимого списка выпадающих списков

Я пытаюсь создать 3-х слойное раскрывающееся меню для моей автомобильной компании, мне нужно, чтобы каждое выпадающее меню зависело от предыдущего выбранного варианта.

Например: CAR MAKE: BMW BODY STYLE: 3 серии ДВИГАТЕЛЬ: S52 3.2L I6

Я даже не знаю, что искать или как его реализовать (Javascript, PHP, JSON, Ajax и т.д.), Может ли кто-нибудь указать мне в правильном направлении, на котором было бы самым простым способом сделать это? меню? Любая помощь очень ценится!

1 ответ

Для этого вы можете использовать библиотеку типа knockout.js, которая позволяет разделить код и разметку, что значительно облегчит жизнь. Вот пример реализации нокаута, который вы ищете: http://jsfiddle.net/pCc9w/4/

Html:

<!--ko with: selectedLevel1 -->
 
<!--/ko-->



 <!--ko with: selectedLevel2 -->

 <!--/ko-->

Javascript:

var data = [
 {
 name:"level1",
 subitems:[
 {
 name:"level1.1",
 subitems:[
 { name:"level1.1.1" },
 { name:"level1.1.2" },
 { name:"level1.1.3" }
 ]
 },
 {
 name:"level1.2",
 subitems:[
 { name:"level1.2.1" },
 { name:"level1.2.2" },
 { name:"level1.2.3" }
 ]
 }]
 },
 {
 name:"level2",
 subitems:[
 {
 name:"level2.1",
 subitems:[
 { name:"level2.1.1" },
 { name:"level2.1.2" },
 { name:"level2.1.3" }
 ]
 },
 {
 name:"level2.2",
 subitems:[
 { name:"level2.2.1" },
 { name:"level2.2.2" },
 { name:"level2.2.3" }
 ]
 }]
 }, 
]

 var dataViewModel = ko.mapping.fromJS(data);
 var mainViewModel = {
 data:dataViewModel,
 selectedLevel1:ko.observable(),
 selectedLevel2:ko.observable(),
 selectedLevel3:ko.observable()
 }



 ko.applyBindings(mainViewModel);

Имейте в виду, что это только решает проблему на стороне клиента. На стороне сервера вам нужно каким-то образом получить массив данных и отправить его клиенту. Вероятно, вы должны использовать структуру MVC. Некоторые примеры - ruby on rails, django, asp.net MVC. PHP также имеет множество фреймворков MVC.

licensed under cc by-sa 3.0 with attribution.