【发布时间】:2010-12-30 18:20:26
【问题描述】:
我是 Web 开发的新手,我的任务是开发一个 Web 应用程序,该应用程序基本上会在一个页面上向用户显示 5-15 个下拉列表,其中每个选择都会限制所有其他列表中的选择。用户应该能够从任何一个列表开始(因此没有设置选择顺序),当用户在每个列表中选择了某些内容或所有参数被先前的选择锁定时,用户必须按下 GO 按钮并进行一些计算将发生,呈现一个数据库选择。基本上它是一个多参数产品选择器应用程序。
列表之间的关系并不简单,可能需要计算字段等,一个列表可能会影响其他几个列表的内容。后面的数据库将是 MYSQL,可能是一个大表,可能有 30 个字段和 500-5000 行。除非你有充分的理由不这样做,否则我将使用 PHP、JavaScript 和 AJAX。
我做了一些研究,发现了三种方法:
将所有数据发送到浏览器并使用Javascript处理过滤等客户端。
每次选择后将参数发送回服务器,并在每次选择后重新加载整个表单。可能是少量的 Javascript 和 PHP 中的大多数代码。
使用 AJAX 动态更改所有列表内容,而无需重新加载整个表单。
由于我对这方面很陌生,我很难说出要走哪条路,有什么陷阱等等......
我有一些顾虑:
A.初始加载缓慢。 #1 最差?
B.动态响应慢。 #2 最差?
C.复杂的编程。 #3 最差?
D.不同浏览器和平台的兼容性问题。不知道哪种方法最有可能产生问题...如果我使用一些框架会更好?
E.我什至可以尝试为关闭 javascript 的人做一些至少部分工作吗? (比如选择新页面上的每个列表并且每次都必须按 GO 按钮)? (我想我可以告诉我的用户他们必须有 Javascript,所以没什么大问题......)也许 #2 在这里最好?
F。我认为“免费选择顺序”的规范意味着我必须首先下载大部分数据库,所以也许我应该尽量避免该选项......如果我保留它,我不妨使用方法#1,或者? ??
G.最好在 SQL 中尽可能多地进行选择/过滤,以通过构建自定义 SQL 代码来允许未来的扩展,这样就给 #1 带来了很大的负面影响......
H.其他陷阱等???
我已经找到了所有三种方法的教程等,但如果你能指出这样的好资源,我将不胜感激,尤其是我的代码不基于不智能/好/不兼容的示例......
1: http://www.bobbyvandersluis.com/articles/unobtrusivedynamicselect.php http://javascript.about.com/library/bl3drop.htm http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_20523133.html
2: http://www.plus2net.com/php_tutorial/php_drop_down_list.php http://www.plus2net.com/php_tutorial/php_drop_down_list3.php
3: http://techinitiatives.blogspot.com/2007/01/dynamic-dropdown-list-using-ajax_29.html http://www.webmonkey.com/tutorial/Build_an_Ajax_Dropdown_Menu http://www.noboxmedia.com/massive-ajax-countryarea-drop-down-list/ http://freeajaxscripts.net/tutorials/Tutorials/ajax/view/Create_AJAX_Dynamic_Drop_Down_List_using_PHP_-_xajax.html
3+jQuery: http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/
现在的问题是:在所有这些方法方面经验丰富的人能否帮助我,通过对上述方法 1-3 的评估,以便我可以选择一个并开始走上正确的道路?另外,我会通过学习/取消像 jQuery+jSON 这样的框架来帮助我吗?
Rgds 下午
【问题讨论】:
标签: php javascript mysql ajax drop-down-menu