使用render partial yii框架进行验证

时间:2013-04-01 00:28:41

标签: php ajax validation renderpartial yii-extensions

我正在使用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。 如果我的英语不好,请帮助我,对不起。

0 个答案:

没有答案