2009-05-17 63 views
1

在PHP中,有没有人用来提交表单的模式?表单提交的最佳实践..等是否有表单提交模式?

例如,我试图实现一个CRUD操作。起初,我一直在使用处理表单显示和形式提交功能相同

class Somecontroller extends Controller { 

    function form1_add() { 
    // if submit exist save it in database 
    // else 
    // display the form 
    } 

    function form1_edit() { 
    // if submit exist save it in database 
    // else 
    // display the same form 
    } 
} 

什么我不喜欢。关于这种做法,登录,检查是否有提交或是否是品牌新形式是在相同的功能。

我曾经想过做两个不同的功能

form1_add() and form1_add_submit() 

来处理这些操作。但是其他问题出现,例如,验证失败,我将不得不再次从form1_add_submit()调用form1_add()来显示那些验证错误。

人们用这种手术做了哪些其他的做法?这些有特定的模式吗?

回答

1

与任何编程一样,一般原则是尽可能保持原子的原子性。在一个函数中执行多个任务只会让你的工作更加困难,并且使调试更加困难。从其他函数调用函数是一个非常好的主意,并且至少会使您的代码更易于理解。

就具体示例而言,我总是将显示与表单提交/验证分开,因为它们完全不同。如果你想'漂亮'的验证,也许考虑在表单本身上使用JavaScript,然后只是在表单上方显示PHP的'错误'列表,如果表单提交仍然不符合输入(允许用户纠正它们)。

+0

这是有道理的。我猜。我对drupal的FormsAPI印象深刻。想知道是否有类似的东西。 感谢您的意见。 – bibstha 2009-05-17 17:44:46

+0

找到适合你的东西,并使你的代码最容易调试,并与它一起运行。如果这是某种形式的框架,那很好。如果它只是你自己的代码,也很棒! – 2009-05-17 17:58:48

0

我不知道有任何“最佳做法”或“标准方法来做到这一点”。

个人而言,我使用外部函数来处理这个问题。
如果用户提交,那么我调用userSubmited()等等。我也将这些分离成单独的文件,所以我可以保持与表单更清洁(只是标题等)。另外,将表单处理部分保存在一个文件中,并将UI显示在另一个文件中可能会是一个不错的主意,以使其更加清晰。