基于选择生成复杂动态元素的最佳方式


Best way to generate complex dynamic elements based on selection

我有一个带有下拉列表的表格,用于选择parentCategory:(汽车、汽车零部件、自行车、MC、自动巴士等)。

每个类别可能有一个子类别或子视图(文本框、复选框、下拉列表等),或两者兼有。

每个子类别也可能有子视图(文本框复选框下拉列表等)

示例:

 if user selects "car" 
    {
    generate 4 different dropdowns(year model[get options from db], milage[get options from db], bensin or disel, manual/automatic)
     generate 1 textField(registration number)
    }
 if user selects "car parts"
    {
    generate a subcategory dropdown with items(gps, car parts, tire, car stereo)
    //if subcategory.value changes then look if there is subView. 
    ex: if subcategory.value is "car part", then generate 1 dropdown(whichCarSection)
    }
 if user selects "bike"
    {
    generate a subcategory dropdown with items from database
    }

实现此请求的最简单方法是什么?如果parentcategory有subCategory,我可以生成一个下拉列表。(在我的例子中:当用户选择"轮胎"时)

如何生成子视图
我将subView元素存储在哪里?

我这么长时间以来所做的是:我在mysql中有一个包含类别项的表。

catID - catTitle  - hasSubCat 
100     - car       - 0        
120     - car parts - 1 
130     - bikes     - 1        

我在mysql中有一个子类别项的表。

subCatId - subCatTitle - parentCat 
0        - gps         - 120         
1        - car part    - 120        
2        - tire        - 120
3        - BMX         - 130
4        - BMW         - 130
5        - Mountain    - 130

我很高兴看到您从UI建模中提前建模数据。首先,我想看看你在PHP中回顾MVC(http://oreilly.com/php/archive/mvc-intro.html)-然后从MVC中决定M(Ruby on Rails通过让它的M直接反映表来自动做到这一点)。下一步是决定一个视图。这个应用程序可以通过PHP生成Javascript列表来表示客户端的M,从而实现客户端的一切机制化——它需要下载所有数据。它还可以发送代码将事件附加到UI,以便在客户端交换或生成应用程序的V-这可以是主类别的一组选项卡,也可以是带有子类别下拉列表的选项卡,或者是用于选项卡内容的单选按钮,等等。当数据变得更大时,另一种选择是在客户端-服务器交互中引入AJAX。这使客户端和服务器变得复杂,但当数据量更高时,它的响应能力更强。同样,服务器处的M将根据C(控制器)的命令响应于V(客户端处的视图)生成的事件或输入来更新自身。我希望这能有所帮助,因为我认为提供任何代码都不适合您的情况。