0

codeigniter を使用して CRUD システムを構築しています。

ユーザーが項目を選択すると、その詳細がデータベースから照会され、フォーム フィールドに入力されます。

ユーザーは、そのアイテムを更新するか、複製して新しいアイテムを作成するかを決定できます。

複製は次のように行われるようにしたかった: [複製] ボタンをクリックすると、アイテム コードの値がクリアされ (アイテム コードは一意であり、ユーザーが生成したものであるため)、 [複製] ボタンの値は [作成] に変更されます。新しいアイテム。次に、ユーザーは新しいアイテム コードを入力し、[ Create a New Item ] ボタンをクリックする必要があります。

上記はJavascriptで簡単に実現できます。

次に、フォームが送信され、CI の form_validation ライブラリを使用して検証されます。

検証が失敗した場合は、フォームを再読み込みしてエラー メッセージを表示します。

繰り返しますが、その部分は CI の form_validation を使用して簡単に実現できます。

私の問題はここにあります: エラーメッセージで失敗したフォームをリロードした後、Duplicateボタンの値をCreate a New Item のままにして、最初のDuplicate値にリセットしないようにします。

エラーメッセージをフォームに返した後、ボタンのを設定するにはどうすればよいですか?

4

1 に答える 1

1

1 つのアプローチは、検証が成功したか失敗したかを判断するためのフラグとして機能する変数を送信することです。

例えば:

// コントローラーから

if ($this->form_validation->run() == FALSE)
        {
                        $data['form_validated'] = FALSE;
                $this->load->view('myform',$data);
        }
        else
        {
                        $data['form_validated'] = TRUE;
                $this->load->view('myform',$data);
        }

// ビューで

if($form_validated) {
 //code if form is validated
}
else {
//code if form is not validated
}

ページが最初に読み込まれるときに、最初に $form_validated = TRUE に設定します。

お役に立てれば。

セッションを使用して、フォームが検証されているかどうかに関するデータを保存することもできます

于 2012-10-23T13:09:38.283 に答える