我在开发表单时的初始策略是这样的:表单回发到同一页面和页面处理程序中我首先查找POST变量并采取适当的操作,然后显示页面内容。一开始看起来一切都很美好。我会在我的表单和页面中放置一个隐藏字段来跟踪当前状态,我可以在页面上实现状态机以在查看,编辑或添加状态中显示页面。但是2个月之后我的网页变成了可怕的有状态怪物,充斥着IF和分支机构,无法维持,在隐藏的领域中页面和客户之间交换的状态是“重量挑战”,我无法忍受这一切如何变成进行。
我做错了什么?这本来就很难吗?我是在重新发明ASP网页形式的滑坡?这怎么做得好?
背后的技术(PHP)无关紧要。我的问题基本上是如何做HTTP表单,不仅仅需要2个字段,然后转到“谢谢”页面。
答案 0 :(得分:1)
如果您想要更“无国籍”的感觉,请查看会话 http://us3.php.net/manual/en/book.session.php
您的方法适用于小规模和独立的表单,但是对于较大的Web应用程序,您需要更好的东西。
答案 1 :(得分:1)
除了忽略可伸缩性之外,你本身并没有做任何错误的。对于你的初始范围,POST处理工作就像一个魅力,但随着应用程序的增长,或者更多的项目开始使用你的自定义框架,越来越多的代码被重复,你会发现自己重写了你已经从头开始做的事情。进入维护噩梦。
解决方案是使用已建立的框架,例如CodeIgniter,CakePHP,Symfony或任何其他框架,以便您基本上永远不会重复常见任务,并且您的所有应用程序都将具有相同的结构和流程。有一些简单的视频可以帮助您开始使用这些视频。
我假设你在提到ASP.NET时试图模仿ViewState
,这不是必需的。这些框架中的每一个都有内置的方法来处理表单提交和验证 - 并结合一些客户端技术,如jQuery,您可以非常轻松地构建丰富的应用程序。
答案 2 :(得分:1)
这种风格在某种程度上肯定是可用的;但需要一些纪律。我解释了自己的方法here。请注意,如果事情变得太复杂,或者团队成长,那么使用真正的框架是值得的。 (Django太棒了!)