Update one row on multiple model

Hi,

first thing, I speak french, so my english isn’t really good and I’m sorry about that :(

So I’ve got a model called member and a second model called schoolyears.

So, a member at school has got a schoolyears.

And in my idea, I’ve got a cgridview with my member, and with a selectable row, I can pass the member selected to the next year with a button.

Here is my view :




<?php

	$form=$this->beginWidget('ext.validationForm.ValidationForm', array(

	'id'=>'membre-form',

	'type'=>'horizontal',

	'htmlOptions'=>array(

		//'enctype'=>'multipart/form-data',

	),

	'enableAjaxValidation'=>false,

));?>

	<?php

		

		$test = new Membre;

		$colonnes=array();

		$i=0;

		//print_r($model->attributes);

	

	 ?>

	<?php  echo CHtml::submitButton('Chercher', array('submit'=>'#UrlForSearch','style'=>'display:block;'));?>


	<p class="help-block"><?php echo Yii::t('core', 'Fields with <span class="required">*</span> are required.');?></p>


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


	<?php 

		//echo CHtml::textField('PrenomMembre','un truc');

		echo 'Nom : '.$form->textField($model,'NomMembre',array('maxlength'=>30))."<br/>";

		echo 'Prénom : '.$form->textField($model,'PrenomMembre',array('maxlength'=>30))."<br/>";

	?>

	<?php 

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'NomMembre'))." Nom du membre <br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'PrenomMembre'))." Prénom du membre<br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'MEstEnseignant'))." Est enseignant <br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'MEstActif'))." Est actif <br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'APayeContrib'))." Contribution payée<br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'ADroitSubvention'))." Subvention<br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'MontantSubvention'))." Montantsubvention<br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'ParticipeCamp'))." Camp<br/>";

		//*

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'NiveauSearch'))." Niveau<br/>";

		//*

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'LocaliteSearch'))." Localité<br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'DegScolaireSearch'))." Degré scolaire<br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'GroupeEnsembleSearch'))." Groupe ensemble<br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'InstrumentSearch'))." Instruments<br/>";

		echo $form->checkBox($model,'toDisplay[]', array('value'=>'ContactSearch'))." Adresse du responsable<br/>";

		//*/

	?>

<?php $this->endWidget(); ?>


<?php

$this->widget('bootstrap.widgets.TbExtendedGridView',array(

	'type'=>'striped bordered condensed',

	'fixedHeader' => true,

	'responsiveTable'=>false,

	'id'=>'membre-grid',

	'dataProvider'=>$model->search(),

	'filter'=>$model,

	'columns'=>$columns,

));

/*$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

	//*/

//echo CHtml::link('Download CSV',array('Membre/export'));

?>



Here is my actionSearch and getcolumntest (in get columntest there is the checkbox for select member)




public function actionSearch()

{

    $criteria = new CDbCriteria();

    $columns=array('NomMembre',"PrenomMembre",'NiveauSearch','APayeContrib');

		

    if(isset($_POST['Membre']))

    {

        $columns=$this->getColumnsTest($_POST['Membre']['toDisplay']);

    }

    else

    {

        $columns=$this->getColumnsTest($columns);

    }

		

    $model=new Membre('search');

    $model->unsetAttributes();

		

    if(isset($_POST['Membre']))

    {

		

        $model->attributes=$_POST['Membre'];

        $key = array_keys($_POST['Membre']);

        $i=0;

        foreach($_POST['Membre'] as $field)

        {	

            if($key[$i]!="toDisplay" )

            {			

                $criteria->compare($key[$i], $field, true, 'AND');

	    }				

            $i++;

        }

        $dataProvider = new CActiveDataProvider ("Membre", array('criteria'=>$criteria));

        $this->render('search',array('model'=>$model,'dataProvider'=>$dataProvider,'columns'=>$columns,));

    }

    else

    {

        $this->render('search',array('model'=>$model,'dataProvider'=>$model->search(),'columns'=>$columns,));

    }

	}


public function getColumnsTest($ColumnName)

{

    $columns=array();

		

    $i=0;

    foreach($ColumnName as $column)

    {		

        //Some code for specific columns that doesn't interest us

        $i++;

    }

    $i++;

    $columns[$i] = 

    //HERE IS THE SELECT ROW	

    array(

        'class'=>'CCheckBoxColumn',

        'value' => '$data->primaryKey',

	'selectableRows' => '2 or more',

	'htmlOptions' => array('class' => 'mud'),

	'footer' => CHtml::link(Yii::t('core', 'Augmenter le degré scolaire'), array('multiUpdateDegScol'), array('class'=>'multiUpdateDegScol')),

    );

    return $columns;

}



And here my multiupdate

And my problem, the $_POST exist but empty :(




public function actionMultiUpdateDegScol()

	{

		if(isset ($_POST)){

			$message="";

			foreach(array_keys($_POST) as $key)

				$message.=$key."\n";

			

			echo CJSON::encode(array(

				'status'=>'failure',

				'message'=>Yii::t('core', $message),

			));

		}

         }



Anyone got an idea ?

Anyone got an idea ? :(