2009-06-05 31 views
2

我在开发表单时的初始策略是这样的:表单回发到同一页面和页面处理程序我首先查找POST变量并采取适当的操作,然后显示页面内容。这一开始看起来都很好看。我会在窗体和页面中放置一个隐藏字段以跟踪当前状态,并且我可以在页面上实现状态机以在查看,编辑或添加状态中显示页面。但2个月后,我的网页变成了可怕的有形怪物,充满了IF和分支,无法维护,隐藏字段中的页面和客户之间的状态交换是“重量挑战”,我无法忍受它是如何转变的出。使用原始PHP的HTTP表单

我在做什么错?这本质上很难吗?我陷入了重塑ASP网页形式的滑坡?这是如何正确完成的?

背后的技术(PHP)是无关紧要的。我的问题基本上是如何做HTTP表单,而不仅仅是取两个字段并将您转到“谢谢”页面。

回答

1

你真的没有做什么本身错误除了忽略可扩展性。对于您的初始范围,POST处理像一个魅力一样工作,但随着应用程序的增长,或者更多的项目开始使用您的定制框架,越来越多的代码会重复出现,您会发现自己重写了已经从头开始的事情,进入维修噩梦。

的解决方案是使用一个既定的框架,如CodeIgniterCakePHPSymfony或其他任何让你在本质上永远不会被重复共同的任务,并且所有应用程序将具有相同的结构和流程。有简单的视频让你开始任何这些。

我假设你试图模仿ViewState当你提到ASP.NET,这是不是真的有必要。这些框架中的每一个都有内置的方法来处理表单提交和验证 - 并且与一些客户端技术(如jQuery)相结合,您可以非常轻松地构建丰富的应用程序。

1

这种风格当然可以使用到一个点;但需要一些纪律。我解释了我自己的方法here。请注意,如果事情变得太复杂,或者团队不断增长,那么使用真正的框架是值得的。 (Django太棒了!)