Hola amigos,
tengo un problema con un multiupdate que no puedo solucionar.
Tengo una vista donde se muestran los record de base datos con DataProvider.
A lado de cada record hay un boton con el qual les dirigo al actionEsito (por ide para que puedan hacer un update).
Quiero quitar el boton y poner un checkbox para que se puedan selecionar muchos record y gracias a un boton que voy a poner a final de la pagina quiero que se vayan al actionEsito (es igual al Update ahora) con todos los record que el usuario à selecionado para que puedan hacer el update de los mismos.
Esta es mi actionConsegne que renderiza la vista:
public function actionConsegne()
{
$this->layout="//layouts/benvenuto";
$filiale_destinazione = Yii::app()->user->filiale_id;
$cr = new CDbCriteria();
$cr->condition = 'filiale_destinazioneid = :filiale_destinazione AND status = :status AND stampa= :stampa';
$cr->params = (array(':filiale_destinazione' => $filiale_destinazione, ':status'=>0, 'stampa'=>2));
$cr->addInCondition('esito', array('In Consegna', 'Assente al 1° Passaggio', 'Sconosciuto al Civico', 'Indirizzo Insufficiente', 'Indirizzo Errato', 'Trasferito', 'Rifiutata', 'Deceduto'));
$cr->addNotInCondition('vettore', array('POSTE ITALIANE', 'SDA', 'SOGETRAS','TNT','GLS','BARTOLINI','HERMES','FEDEX','UPS','DHL'));
$dataProvider=new CActiveDataProvider('Missiva', array('criteria'=>$cr));
$dataProvider->pagination->pageSize=25;
$this->render('frontend/consegne',array(
'dataProvider'=>$dataProvider,
));
}
la vista frontend/consegne renderiza esto (_consegne):
<tr id="table_data_content" align="center">
<td id="table_data" width="auto">
<?php
$reso_ps = $data->cliente_nome;
if ($reso_ps == 10){
echo '<span STYLE="background:#A9A9A9;"><b><font color="#000000">Prodotto: <u>Posta Semplice</u></b></font></span><br />Trovi il Mittente sulla busta';
}else{
if($data->prodotto =='Reso' && $data->cliente_tipovia != 'CASELLA POSTALE'){
$tracking = $data->tracking;
$prodotto_precedente = Missiva::model()->findAllByAttributes(array('tracking'=>array($tracking)), array('limit'=>1));
foreach($prodotto_precedente as $nome_prodotto){
echo '<span STYLE="background:#A9A9A9;"><font color="#000000"><b>Prodotto: <u>' .$nome_prodotto->prodotto.'</u></b></span></font><br />';
}
echo CHtml::encode($data->cliente_cognome. ' ' .$data->cliente_nome) ;?><br />
<?php echo CHtml::encode($data->cliente_tipovia. ' ' .$data->cliente_indirizzo. ' n. ' .$data->cliente_civico. ' - '); ?>
<?php echo CHtml::encode($data->cliente_cap. ', ' .$data->cliente_comune. ' (' .$data->cliente_provincia. ')' );
}}
if($data->prodotto =='Reso' && $data->cliente_tipovia == 'CASELLA POSTALE'){
$tracking = $data->tracking;
$prodotto_precedente = Missiva::model()->findAllByAttributes(array('tracking'=>array($tracking)), array('limit'=>1));
foreach($prodotto_precedente as $nome_prodotto){
echo '<span STYLE="background:#A9A9A9;"><font color="#000000"><b>Prodotto: <u>' .$nome_prodotto->prodotto.'</u></b></span></font><br />';
}
echo CHtml::encode($data->cliente_cognome. ' ' .$data->cliente_nome) ;?><br />
<?php echo CHtml::encode($data->cliente_indirizzo. ' n. ' .$data->cliente_civico. ' - '); ?>
<?php echo CHtml::encode($data->cliente_cap. ', ' .$data->cliente_comune. ' (' .$data->cliente_provincia. ')' );
}
if($reso_ps!=10 && $data->prodotto!='Reso'){
if($data->prodotto != 'Posta Massiva'){
if($data->prodotto != 'Posta Semplice'){
echo '<span STYLE="background:#A9A9A9;"><font color="#000000"><b>Prodotto: <u>' .$data->prodotto.'</u></b></span></font><br />';
echo CHtml::encode($data->cliente_cognome. ' ' .$data->cliente_nome) ;?><br />
<?php echo CHtml::encode($data->cliente_tipovia. ' ' .$data->cliente_indirizzo. ' n. ' .$data->cliente_civico. ' - '); ?>
<?php echo CHtml::encode($data->cliente_cap. ', ' .$data->cliente_comune. ' (' .$data->cliente_provincia. ')' );
}}}
if($reso_ps!=10 && $data->prodotto=='Posta Massiva'){
echo '<span STYLE="background:#A9A9A9;"><font color="#000000"><b>Prodotto: <u>' .$data->prodotto.'</u></b></span></font><br />';
echo $data->cliente_cognome. ' ' .$data->cliente_nome.' ' .$data->cliente_cap. ' - ' .$data->cliente_comune. ' (' .$data->cliente_provincia.')';
}
if($reso_ps!=10 && $data->prodotto=='Posta Semplice'){
echo '<span STYLE="background:#A9A9A9;"><font color="#000000"><b>Prodotto: <u>' .$data->prodotto.'</u></b></span></font><br />';
echo $data->cliente_cognome. ' ' .$data->cliente_nome.' ' .$data->cliente_cap. ' - ' .$data->cliente_comune. ' (' .$data->cliente_provincia.')';
}
?>
</td>
<td id="table_data" width="auto">
<?php echo CHtml::encode($data->esito); ?>
</td>
<!-----------------ESTO ES LO QUE QUIERO CAMBIAR -------------------->
<td style="border-right:3px solid #b11a01;" width="auto">
<?php echo CHtml::linkButton('Assegna Esito',array('class'=>'btn btn-primary btn-small', 'submit' => array('missiva/esito', 'id'=>$data->missiva_id)))?>
<!-----------------ESTO ES LO QUE QUIERO CAMBIAR -------------------->
</td>
Quiero quitar de esta vista el boton (al final de la pagina):
<?php /* echo CHtml::linkButton('Assegna Esito',array('class'=>'btn btn-primary btn-small', 'submit' => array('missiva/esito', 'id'=>$data->missiva_id)))*/?>
y poner un checkbox … algo asi:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'missiva-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>true,
'clientOptions'=>array(
'validate OnSubmit'=>true,
))); ?>
<?php echo CHtml::activeCheckBox($model,'missiva_id', array('class'=>'span1', 'name'=>'check_id', 'value'=>'check_id', 'uncheckValue'=>0))/*CHtml::encode($data->missiva_id)*/; ?>
<?php $this->endWidget(); ?>
Del momento mi actionEsito solo permite de guardar un record a la vez.
Esta es mi actionEsito;
public function actionEsito($id)
{
$model=$this->loadModel($id);
$this->performAjaxValidation($model);
if(isset($_POST['Missiva']))
{
$model->attributes=$_POST['Missiva'];
if($model->save())
$this->redirect(array('consegne');
}
$this->render('frontend/esito',array(
'model'=>$model,
));
}
Como puedo hacer para que se puedan guardar los ide que llegan por $_POST desde la vista esito???
Por al action create se como se insertan muchos record a la vez…pero por el Update me estoy volviendo loco Alguien puede ayudarme porfavor!!! Les pido disculpa por mi espanol.