我对web开发很陌生,有一个任务来开发一个Web应用程序,它将基本显示用户5-15在一个页面上下拉列表,其中每个选择将限制所有其他列表中的选择。用户应该能够从任何一个列表开始(所以没有设置选择顺序),并且当用户已经在每个列表中选择了某些内容或者所有参数被之前的选择锁定时,用户必须按下GO按钮并且一些计算将发生,提出数据库选择。基本上它是一个多参数产品选择器应用程序。使用MySQL,PHP/JavaScript/Ajax/jQuery的链接下拉列表
列表之间的关系并不简单,可能需要计算字段等,一个列表可能会影响其他几个内容。后面的数据库将是MYSQL,可能是一个大型表格,可能有30个字段和500-5000行。我将使用PHP,JavaScript和AJAX,除非你有充分的理由不这样做。
我已经做了一些研究,发现三种方式来做到这一点:
所有数据发送到浏览器的JavaScript处理过滤等客户端。
每次选择后将参数发送回服务器,并在每次选择后重新加载整个表单。可能是一个littebit Javascript和PHP中的大多数代码。
使用AJAX动态更改所有列表内容,而无需重新加载整个表单。
因为我很新的这我很难报时哪个方向走,有什么陷阱还有等等
我有一些conserns:
A.缓慢的初始加载。最糟糕的是#1? B.动态响应缓慢。 #2最差?
C.复杂的编程。 #3的最差?
D.不同浏览器和平台的兼容性问题。不知道哪种方法最有可能造成问题......如果我使用某种框架,会更好吗?
E.我甚至可以尝试使JavaScript至关重要的人至少有部分工作吗? (比如在新页面上选择每个列表并且每次都按下GO按钮)? (我想我可以告诉我的用户他们必须有Javascript,所以没有大问题....)也许#2在这里最好?我认为“自由选择顺序”的规范意味着我必须首先下载大部分的数据库,所以也许我应该尽量避免这种选择.....如果我保留它,我不如使用方法#1,或?
G.这将是最好做到尽可能在SQL selction /过滤通过建立自定义的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 PM
感谢詹姆斯全面的答案! AJAX +框架是大多数人似乎建议的。猜猜我必须付出努力......另一个消极的原因是,它基本上排除了没有使用JavaScript的人的回退解决方案,或者?对于框架来说,jQuery是这种应用程序的一个好的/最好的选择,还是应该考虑YUI,MooTools等具有更多功能,但似乎有点难以使用/学习? – 2009-12-29 22:44:09