1

サインアップフォームに取り組んでおり、一部のWebサイトでユーザー登録するための2つのステップがあるため、ステップ1は作成アクションであり、ステップ2はプロファイルコントローラーでの更新アクションです。

だから私の問題は、検証エラーで選択した国と都市をどのように保存できるかですが、それはすでにですか?!画像を確認してください

これをチェックして

見る:

<div class="row">


        <?php echo $form->labelEx($model,'countryId'); ?>
        <?php echo $form->dropDownList($model, 'countryId',
                CHtml::listData(SysCountry::model()->findAll(), 'id', 'name'),
                array(
                    'empty'=>'Select country',
                    'ajax' => array(
                    'type'=>'POST', //request type
                    'url'=>CController::createUrl('profile/dynamiccity'), //url to call.
                    //Style: CController::createUrl('currentController/methodToCall')
                    'update'=>'#Profile_cityId', //selector to update
                    //'data'=>'js:javascript statement' 
                    //leave out the data key to pass all form values through
                    )));

        ?>
        <?php echo $form->error($model,'countryId'); ?> 
</div>


<div class="row">
        <?php echo $form->labelEx($model,'cityId'); ?>
        <?php echo $form->dropDownList($model, 'cityId', array('empty'=>'Please select country first')
        ); ?>
        <?php echo $form->error($model,'cityId'); ?> 
    </div>
4

2 に答える 2

1

これをチェックして、使用する必要がある2番目のドロップダウンを更新します

'update'=>'#'.CHtml::activeId($model,'tracanton'),

echo CActiveForm::dropDownList
                     (
                        $model,'traprovincia',
                        CHtml::listData
                        ( 
                            CatUbicacionGeografica::model()->findAll('cat_ubigeo_nivel=? ORDER BY cat_ubigeo_descripcion', array('2') ), 
                            'cat_ubigeo_codigo', 'cat_ubigeo_descripcion'
                        ), 
                         array(
                            'ajax'=>array(
                                'type' => 'POST',
                                'url' => CController::createUrl('tramite/updatecanton'),
                                'data'=>array('padre'=>'js:this.value'), 
                                'update'=>'#'.CHtml::activeId($model,'tracanton'),
                                ),
                             'prompt' => '( Seleccione Provincia )',
                             'style' => "width: 300px;",
                            // 'onchange'=>'js:$("#tracanton").focus()',
                        )    
                     );
于 2012-10-10T05:05:56.177 に答える
0

JavaScriptまたはPHPの検証ですか?前者がJSを使用してドロップダウンボックスの値を取得してから再入力する場合(この場合は、コードを投稿します)。PHPの場合は、ドロップダウンで次の手順を実行します

<select>

//-- If 'save' has been entered and validation has been caught
if (isset($_POST/GET['country'])) {

  echo '<option value=". $_POST/GET['country'] . '" selected="selected">' . $_POST/GET['country'] . '</option>';

} else {

   //-- if validation hasnt been actioned

}

</select>

これはあなたのコードではうまくいかないかもしれませんが、私はあなたがアイデアを得ることを願っています。あなたがあなたの検証コードを投稿することができれば、それがあなたのために働くように正しく修正することができません。

于 2012-09-08T15:41:37.853 に答える