Actually i have a CgridView with some fields but need a specific field with a dropDownList, when a option is chosen i need update the model, so put some js
here is my code
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'aula-grupo-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'ajaxUpdate'=>false,
'columns'=>array(
'id',
//'grupo',
array('name'=>'carrera', 'value'=>'$data->grupo0->defCursoGrupo->carrera0->nombre'),
array('name'=>'curso', 'value'=>'$data->grupo0->defCursoGrupo->curso0->nombre'),
array('name'=>'grupo', 'value'=>'$data->grupo0->num_grupo'),
array('name'=>'horario', 'value'=>'$data->horario0->nombre'),
array('name'=>'dia_semana','value'=>'$data->myDay'),
array('name'=>'aula','type'=>'raw' , 'value'=>'CHtml::dropDownList("aula". $row, $data->aula,$data->aulasDisponibles, array("class"=>"ddlAula",
"prompt"=>"Seleccione una aula",
"ajax" => array(
"type"=>"POST",
"url"=>array(\'aulaGrupo/asignarAula\'),
"data"=>array("aula"=>"js:this.value", "id"=>$data->id),
"success"=>"function(){
$(\'#aula-grupo-grid\').yiiGridView(\'update\', {
data: $(this).serialize()
});
}",
)
))'),
array(
'cilass'=>'CButtonColumn',
),
),
));
jquery
jQuery('#aula-grupo-grid').yiiGridView({'ajaxUpdate':['1','aula-grupo-grid'],'ajaxVar':'ajax','pagerClass':'pager','loadingClass':'grid-view-loading','filterClass':'filters','tableClass':'items','selectableRows':1,'enableHistory':false,'updateSelector':'{page}, {sort}','filterSelector':'{filter}','pageVar':'AulaGrupo_page'});
jQuery('body').on('change','#aula0',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'20'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula1',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'21'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula2',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'22'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula3',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'23'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula4',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'24'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula5',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'25'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula6',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'26'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula7',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'27'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula8',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'28'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('body').on('change','#aula9',function(){jQuery.ajax({'type':'POST','url':'/develop/sicap/index.php?r=aulaGrupo/asignarAula','data':{'aula':this.value,'id':'29'},'success':function(){
$('#aula-grupo-grid').yiiGridView('update', {
data: $(this).serialize()
});
},'cache':false});return false;});
jQuery('#yii_bootstrap_collapse_0').collapse({'parent':false,'toggle':false});
});
What is the problem?
When the cgridview is drawn, only is defined the first ten jquery scripts required to update the model from the selection on DDL, so if i choose the next page jquery keep like the first page and then if you update some elemet from page 2 you a really updating elements from the page 1, because the jquery was no changed.
One solution to this is disable the “ajaxUpdate” property but that isn’t fancy because all page is reloaded
So, what i can do?
A will appreciate your help.