Hi,
After calling modal removedata (add button click), delete button on gridview stop working, here is my code:
index.php
<?php
Yii::app()->clientScript->registerScript('utama', "
$('.modal-footer .btn-primary').on('click',function(){
$.ajax({
dataType:'json',
type: $('#kuri-form').attr('method'),
url: $('#kuri-form').attr('action'),
data: $('#kuri-form').serialize(),
success: function(data) {
if (data.header=='berhasil') {
$.fn.yiiGridView.update('jkuliah-grid');
}
}
});
});
");
?>
<?php
if (Yii::app()->user->checkAccess('jkuliah.create')) {
$helpUrl = $this->createUrl('create',array('siswa'=>$siswa));
echo TbHtml::button('Add', array(
'color' => TbHtml::BUTTON_COLOR_SUCCESS,
'onclick'=>"$('#cru-dialog').removeData('modal');
$('#cru-dialog').modal({remote:'$helpUrl'});
$('#cru-dialog').modal('show');",
));
}
?>
<?php
$form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'jkuliah-form',
'enableAjaxValidation'=>false,
'action'=>$this->createUrl('approv',array('siswa'=>$siswa)),
'htmlOptions'=>array(
'onsubmit'=>"return false;"),
));
$this->widget('bootstrap.widgets.TbGridView',array(
'id'=>'jkuliah-grid',
'type' => 'striped bordered condensed hover',
'dataProvider'=>$model->search($siswa),
'filter'=>$model,
'columns'=>array(
array(
'name' => 'id',
'id' => 'JurnalId',
'value' => '$data->primaryKey',
'selectableRows' => '10',
'class' => 'CCheckBoxColumn',
'htmlOptions' => array('width'=>'2%'),
),
array(
'name'=>'mkuliah',
'value'=>'$data->mkuliah->nama',
),
array(
'class'=>'bootstrap.widgets.TbButtonColumn',
'template'=>'{delete}',
'htmlOptions'=>array('style'=>'text-align:center','width'=>'5%'),
'buttons'=>array(
'delete'=>array('visible'=>"Yii::app()->user->checkAccess('jkuliah.delete')"),
)
),
),
));
$this->endWidget();
?>
<?php
$this->beginWidget('bootstrap.widgets.TbModal', array(
'id'=>'cru-dialog',
'header' => 'Mata Kuliah',
'footer' => array(
TbHtml::button('Add Selected',array('data-dismiss' => 'modal','class'=>'btn-primary btn-large')),
TbHtml::button('Close', array('data-dismiss' => 'modal','class'=>'btn-warning btn-large')),
),
'htmlOptions'=>array('style' => 'width: auto; margin-left: -100px;')
));
$this->endWidget();
?>
_kurihlp.php
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'kuri-form',
'enableAjaxValidation'=>false,
'htmlOptions'=>array('onsubmit'=>"return false;"),
)); ?>
<?php $this->widget('bootstrap.widgets.TbGridView',array(
'id'=>'kuri-help',
'type' => 'striped bordered condensed hover',
'dataProvider'=>$model->bantu($siswa),
'filter'=>$model,
'columns'=>array(
array(
'name' => 'id',
'id' => 'kuriId',
'value' => '$data->primaryKey',
'selectableRows' => '10',
'class' => 'CCheckBoxColumn',
'htmlOptions' => array('width'=>'5%'),
),
array(
'name'=>'semester',
'value'=>'$data->mkuliah->semester',
'htmlOptions'=>array('width'=>'5%'),
),
array(
'name'=>'mkuliah',
'value'=>'$data->mkuliah->nama',
),
array(
'header'=>'Kode',
'value'=>'$data->mkuliah->kode',
'htmlOptions'=>array('width'=>'5%'),
),
),
)); ?>
<?php $this->endWidget(); ?>
controller :
<?php
class JkuliahController extends Controller
{
public function actionDelete($id)
{
if (Yii::app()->request->isPostRequest) {
// we only allow deletion via POST request
$this->loadModel($id,'Jkuliah')->delete();
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
if (!isset($_GET['ajax'])) {
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
}
} else {
throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
}
}
public function actionIndex($siswa)
{
$model=new Jkuliah('search');
$model->unsetAttributes(); // clear any default values
if (isset($_GET['Jkuliah'])) {
$model->attributes=$_GET['Jkuliah'];
}
$msiswa=$this->loadModel($siswa,'Msiswa');
$this->render('index',array(
'model'=>$model,
'siswa'=>$siswa,
'msiswa'=>$msiswa,
));
}
}
what wrong with my code ?