Yii обновление из модального окна

0

Мне нужно обновить модальное окно и показать его, когда я нажимаю кнопку редактирования.

ДИСПЕТЧЕР:

public function actionUpdateAjax($id)
    {
        $contratos = ZfContratos::model()->findByPk($id);

        $this->renderPartial('//ZfContratos/_form_update', array('model'=>$contratos), false, true);
    }

ИНДЕКС:

<?php $this->beginWidget(
    'bootstrap.widgets.TbModal',
    array('id' => 'actualizar_contrato')
); ?>
    <div class="modal-header">
        <a class="close" data-dismiss="modal">&times;</a>
        <h4>Actualizar contrato</h4>
    </div>
    <div class="modal-body">

        <?php $this->renderPartial('//ZfContratos/_form_update', array('model'=>$contrato));?>

    </div>
    <div class="modal-footer">

        <?php $this->widget(
            'bootstrap.widgets.TbButton',
            array(
                'label' => 'CANCELAR',
                'url' => '#',
                'htmlOptions' => array('data-dismiss' => 'modal'),
            )
        ); ?>
    </div>
<?php $this->endWidget(); ?>

И ПРОСМОТР _contratos

В этот момент у меня есть следующее:

<?php echo CHtml::link('EDITAR', array('//ZfInmuebles/UpdateAjax', 'id'=>$data->zf_contrato_id), array('class'=>'btn', 'id'=>'vermas')); ?>

Но мне нужно это как ajaxbutton или ajaxlink, которые обновляют div "actualizar_contrato" и показывают его.

  • 0
    да, это возможно, вам просто нужно добавить кнопку «сохранить / отправить» к вашему модалу, сделав пост-вызов Ajax на этой кнопке, чтобы отправить форму в фоновом режиме, в случае успеха вы можете автоматически закрыть форму.
  • 0
    В этот момент, когда вы щелкаете и переходите на новую страницу, поля содержат фактическое значение модели с помощью вызова ajax, могу ли я сохранить это?
Показать ещё 4 комментария
Теги:
yii
yii-booster

1 ответ

0

Это всего лишь эталонная реализация, чтобы дать вам представление о том, как это сделать, модифицируйте в соответствии с вашими требованиями

// your view
// Button to trigger modal
 <?php echo CHtml::ajaxLink('EDITAR',array('//ZfInmuebles/UpdateAjax', 'id'=>$data-> zf_contrato_id), array(
          'type'=>'POST',
          "success"=>'js:function(html){
              $("#actualizar_contrato >.modal-body").html(html);
              $("#actualizar_contrato").modal("show");
                }
          '));?
.....
  // modal
    <?php $this->beginWidget(
        'bootstrap.widgets.TbModal',
        array('id' => 'actualizar_contrato')
    ); ?>
        <div class="modal-header">
            <a class="close" data-dismiss="modal">&times;</a>
            <h4>Actualizar contrato</h4>
        </div>
        <div class="modal-body">
        <?php 
            $contrato = new ZfContratos; 
            $this->renderPartial('//ZfContratos/_form_update', array('model'=>$contrato));
        ?>
        </div>
        <div class="modal-footer">
            <?php echo CHtml::ajaxLink('Save',  // Link Text
            array('//ZfContratos/update', 'id'=>$data->zf_contrato_id), //url
            array(// ajaxOptions
                'data'=> 'js:$("#id_of_the_form").serialize()' ,
                'type'=>'POST',
                'success'=>'js:function(html){$("#actualizar_contrato >.modal-body").html(html) }'
                )
            ) 
            );?>
            <?php $this->widget(
                'bootstrap.widgets.TbButton',
                array(
                    'label' => 'CANCELAR',
                    'url' => '#',
                    'htmlOptions' => array('data-dismiss' => 'modal'),
                )
            ); ?>
        </div>
    <?php $this->endWidget(); ?>
    .....

И теперь в вашем контроллере измените, как показано ниже.

    //ZfContratos Controller
    public function actionUpdate(){
        // Your regular logic for saving 
        if(Yii::app()->request->isAjaxRequest){
            if($model->save()){

                $this->renderPartial("_mvsavedView",array('model'=>$model)) //OR echo "Saved Successfully"; 
            } else {
                print_r($model->getErrors());
            }
            Yii::app()->end();  
        }
    }
  • 0
    см редактировать пожалуйста, когда я нажимаю ничего не происходит
  • 0
    когда я нажимаю в «EDITAR» ничего не происходит, он не открывает модальное окно с формой
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню