2009-05-17 9 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 
    } 
} 

を処理するために、同じ機能を使用していることは、それがあるかどうかを提出するかのブランドがあるかどうかを確認するために、ログインです新しいフォームは同じ機能です。

私は、これらの操作を処理するために、2つの異なる機能

form1_add() and form1_add_submit() 

を行うことについて考えています。しかし、検証に失敗した場合など、他の問題が発生した場合は、form1_add()form1_add_submit()からもう一度呼び出して、これらの検証エラーを表示する必要があります。

この種の操作には他にどのような方法がありますか?これらの具体的なパターンはありますか?

答えて

1

一般的な原則は、プログラミングと同様に、関数を可能な限りアトミックなものに保つことです。 1つの関数内で複数のタスクを実行するだけで、作業が難しくなり、デバッグが難しくなります。他の関数から関数を呼び出すことは完全に良い考えであり、少なくともコードを理解しやすくします。

特定の例では、表示とフォームの提出/検証は、機能が全く異なるため、常に分離しています。あなたが「かなり」妥当性検証をしたいのであれば、おそらく、フォーム自体にJavaScriptを使用し、PHPでフォームのすぐ上に「エラー」のリストを表示することを検討してください。ユーザーに修正を促す)。

+0

これは意味があります。私は推測する。私はdrupalのFormsAPIにとても感心しています。類似したsthがあった場合には不思議。 コメントありがとうございます。 – bibstha

+0

あなたに適したものを見つけて、コードをデバッグして実行しやすくしてください。それがフレームワークのいくつかの形式なら、素晴らしいです。それがあなたのコードだけならば、また素晴らしい! –

0

私は「ベストプラクティス」または「標準的なやり方」を認識していません。

個人的には、これを処理する外部関数を使用します。
ユーザが投稿した場合、私はuserSubmited()などを呼び出します。また、これらを別々のファイルに分けているので、フォームをクリーナーで保持することもできます(ヘッダーなど)。

また、フォーム処理部分を1つのファイルに保存し、UI表示を別のファイルに保存することをお勧めします。

関連する問題