2012-02-28 2 views
1

私はこのようなフォームを作成しています。ユーザーは、同様のフォームがあるいくつかの他のページを訪問した場合ようにのYiiフォーム要素のデフォルト値

$model = new RequestForm; 
$form = new CForm('application.views.site.requestForm', $model); 

私は、セッションへの入力をフォームデータを保存しています既に満たされています。私は、フォームを送信する際

return array(

'showErrorSummary' => false, 

'elements' => array(
    'first_name' => array(
    'type' => 'text', 
    'class' => 'standard-input', 
    'value' => Yii::app()->requestFormValues->first_name, 
), 
) 

今、問題が発生します。requestForm.phpは次のようになります。最初の名前を変更したとします。入力からPOSTデータではなくセッションからデータを取得します。 requestForm.phpまたはrequestFormValuesコンポーネントでフォームが送信された場合、デフォルト値を指定していないことを確認するにはどうすればよいですか?

種類よろしく、

マリアン

+0

これはあなたの問題を解決するだろうか分かりませんが、 'setFlash'と' getFlash'が役に立ちます。フォームを投稿するときは、メッセージをフラッシュして必要なときに呼び出すように変数を設定します。 Btw、詳細についてはこれをチェックしてください:http://www.yiiframework.com/wiki/21/how-to-work-with-flash-messages/ –

答えて

1

POSTが設定されているのみを使用デフォルト値。それ以外の場合は、デフォルトを使用してください

$RequestForm = new RequestForm; 
if (isset($_POST['RequestForm'])) { 
    $RequestForm->attributes = $_POST['RequestForm']; 
    // validate, save or more.. 
} 
else { 
    $RequestForm->attributes = readFromSession(); //return array 
} 

これは役立ちますか?

+0

私は似たようなことをしました:) – Marian

関連する問題