0

我有几种方法在我的php web应用程序中执行相同的活动。Web应用程序中的同一窗体的多个视图

有应用程序的“管理窗口小部件”部分,它具有用于创建新窗口小部件和现有窗口小部件列表的窗体。

然后在应用程序的其他地方有一个按钮,弹出一个对话框添加一个新的小部件。

然后在应用程序的主页上有另一个表单嵌入来添加窗口小部件(think home page portal)的地方。

我的问题是:这样做的最佳做法是什么?在这种情况下,所有表格将基本相同。所以我的第一个直觉就是对这三种情况使用相同的代码。另一方面,主页上的空间可能更小,三者之间的布局可能不同。

所以,即使它会重复,最好是复制这个表单3次(有一个适当的模型层,所以重复的代码将不包括添加/编辑小部件的逻辑)?或者尝试在所有这些场景中强制使用单一视图?这两者对我来说都是错误的,我希望有一些想法能够发现某种中间立场。

回答

1

一种方法是对的形式作为一个独立的标记(不是样式)文件,然后可以从任何你喜欢的地方加入。

然后,您可以使用AJAX将表单提交给特定的PHP脚本,该脚本处理表单提交并返回有意义的JSON响应。然后,您可以在相关页面上显示和设置此JSON响应。

这样你就可以使用表单所需的任何视图的单个窗体(可以以不同的样式)和单个处理程序。

+0

这是我最后走的方向。无论如何,我正在使用jQuery/ajax这种模式来制作可重用的控件。所以,我可以将基本窗体变成一个控件,并根据需要将其拖入不同CSS的每个视图中。 – computrius 2013-05-16 14:46:22

0

我的意思是,最好的方法是从其他形式组成的形式(不要重复自己)。您可以对同一表单使用不同的模板来更改最终表单的外观。

例如/想法,你可以检查什么是•奈特框架中使用(http://doc.nette.org/en/forms

T.

形式
0

如果你只是改变样式,而不是标记,我认为最好的方法是向表单元素添加一个特定的类,然后使用Javascript(而不是Ajax,只是一个Javascript)在你需要的时候在这些类之间交替。

如果您的应用程序完全不使用Ajax,并且您只是使用PHP生成网页,那么确定您所创建的类应该是一个简单的事情。

在CSS,你做这样的事情:

form.main { ... } 
/* main form rules */ 

form.other { ... } 
/* other form rules */ 
相关问题