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

时间:2012-03-04 16:15:18

标签: php jquery mysql

我有一个下拉列表,用于选择parentCategory :(汽车,汽车零件,自行车,MC,autobuss等)。

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

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

示例:

 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,我已经能够获得一个下拉列表。 (在我的例子中:当用户选择“轮胎”时)

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

我做了这么久的事情是这样的: 我在mysql中有一个带有类别项的表。

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

我在mysql中有一个用于subCategory项目的表。

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

1 个答案:

答案 0 :(得分:0)

我很高兴看到您通过建模UI对数据进行建模。首先,我想看到你在PHP中查看MVC(http://oreilly.com/php/archive/mvc-intro.html) - 然后从你的MVC中决定M(顺便说一句,Ruby on Rails通过它的M直接反映表格。 下一步是决定一个视图。这个应用程序可以在客户端使用PHP生成Javascript列表来表示客户端上的M来控制所有内容 - 它要求下载所有数据。它还可以发送代码将事件附加到UI,以便在客户端交换或生成应用程序的V - 这可以是主类别的一组选项卡,以及带有子类别下拉列表的选项卡或用于选项卡内容的单选按钮等 数据变得更大时的替代方法是将AJAX引入客户端服务器交互。这使客户端和服务器变得复杂,但在数据量较高时使其响应更快。服务器上的M再次响应由V(客户端的视图)生成的事件或输入,由C(控制器)按顺序更新自己。 我希望这会有所帮助,因为我认为提供任何代码并不是最适合您的情况。

相关问题