代码之家  ›  专栏  ›  技术社区  ›  Bibek Shrestha

是否有表单提交模式?

  •  1
  • Bibek Shrestha  · 技术社区  · 15 年前

    在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() form1_add_submit() 再次显示这些验证错误。

    人们在这种手术中还采用了其他什么方法?这些有什么特别的模式吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   James B    15 年前

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

    在一个特定的例子中,我总是将显示和表单提交/验证分开,因为它们是完全不同的功能。如果您想要“漂亮的”验证,可以考虑在表单本身上使用javascript,然后在表单正上方用php显示一个“错误”列表,如果表单提交仍然不符合输入(允许用户更正它们)。

        2
  •  0
  •   WhyNotHugo    15 年前

    我不知道有什么“最佳实践”或“标准方法”可以做到这一点。

    就我个人而言,我使用外部函数来处理这个问题。
    如果用户提交了,则调用userSubmitted(),依此类推。我还将这些文件分隔成不同的文件,这样我就可以使用表单清理器(只是页眉等)来保存这些文件。

    另外,最好将表单处理部分保存在一个文件中,而将ui显示在另一个文件中,这样可以更清晰地显示表单。