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 ?