2

renderpartial を使用してビューを読み込んでいますが、検証が機能せず、エラー メッセージが表示されません。renderpartial の actived processOUTput の問題を解決しようとしましたが、うまくいきません。

これは、フォーム ビューを読み込むインデックス ビューです。

<?php echo CHtml::link('Crear Usuario', array('create'), array('id'=>'newUsuario')); ?>
<div id="modal" class="modal hide fade"></div>
<script>
$(document).ready(function() {
    $("#newUsuario").click(function() {
        event.preventDefault(); 
        $("#modal").load($("#newUsuario").attr("href"));
        $("#modal").modal({show:true});
    });
});
</script>

これは、ビューをロードする私のアクションです

public function actionCreate() {
    $model = new Usuarios;
    // Uncomment the following line if AJAX validation is needed
    $this->performAjaxValidation($model);
    if(isset($_POST['Usuarios']))
    {
        $model->validate();
        $model->attributes=$_POST['Usuarios'];

        $_POST['Usuarios']['check_tipo'] == 1 ? $model->tipo = 'Administrador' : $model->tipo = 'Normal';
        $model->pass_php = md5($model->pass);
        $model->session = $model->generateSalt();
        $model->pass_hash= $model->hashPassword($_POST['Usuarios']['pass'], $model->session);

        $this->transaction = $model->dbConnection->beginTransaction();
        try {
            if($model->save()) {
                $this->transaction->commit();
                $this->actionIndex();
            }

        } catch(Exception $e) {
            $this->transaction->rollBack();
        }
    }
    $this->renderPartial('create', array('model'=>$model));
}

そして、これはフォームのビューです

    <h4 align="center">Nuevo Usuario</h4>
<div class="form">
    <?php
        $form=$this->beginWidget('CActiveForm', array(
            'id'=>'usuarios-form',
            'enableAjaxValidation'=>true,
            'enableClientValidation'=>true,
            'clientOptions'=>array(
                'validateOnSubmit'=>true,
            ),
        ));
    ?>
    <p class="note">Fields with <span class="required">*</span> are required.</p>

    <?php echo $form->errorSummary($model); ?>

    <div class="row">
        <?php echo $form->labelEx($model,'email'); ?>
        <?php echo $form->textField($model,'email',array('size'=>60,'maxlength'=>255, 'placeholder'=>'Escriba su email')); ?>
        <?php echo $form->error($model,'email'); ?>

    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'check_tipo'); ?>
        <?php echo $form->checkBox($model,'check_tipo'); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'nombre'); ?>
        <?php echo $form->textField($model,'nombre',array('size'=>60,'maxlength'=>255, 'placeholder'=>'Escriba su nombre')); ?>
        <?php echo $form->error($model,'nombre'); ?>
    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'pass'); ?>
        <?php echo $form->passwordField($model,'pass',array('size'=>60,'maxlength'=>255, 'placeholder'=>'Escriba su contraseña')); ?>
        <?php echo $form->error($model,'pass'); ?>
    </div>
</div>
<center>
    <?php echo CHtml::button('Close', array('class'=>'btn', 'data-dismiss'=>'modal', 'aria-hidden'=>true)); ?>
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save', array('class'=>'btn btn-primary')); ?>
</center>
<?php $this->endWidget(); ?>

検証とエラーメッセージのレンダリングを使用した場合、問題はrenderpartialだけにあります。私の英語が下手な場合は、助けてください。

4

0 に答える 0