2009-05-17 55 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顯示在另一個文件中可能會是一個不錯的主意,以使其更加清晰。