carlosyii
(Carloscre88)
October 30, 2012, 5:19pm
1
Hola,
Estoy desarrollando un blog para aprender.
El caso es como previsualizar los post antes de guardarlos, es decir, estoy intentando encontrar una forma elegante de hacerlo.
En el _form.php de la vista item, como haríais para pasar la información y poder previsualizar el resultado?Obviamente el formulario va a create o upload.
No pongo código ya que solo busco ideas.
Gracias.
robregonm
(Ricobregon)
October 31, 2012, 6:47pm
2
Hola Carlos,
Podría agregar un parámetro GET llamado "preview" que salte el guardado… podría ser algo así en la función actionCreate() del controller:
public function actionCreate()
{
$model=new Tabla;
//$this->performAjaxValidation($model, 'tabla-form');
if(isset($_POST['Tabla']))
{
$model->attributes=$_POST['Tabla'];
if(!isset($_GET['preview']) and $model->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('create',array(
'model'=>$model,
));
}
Saludos
carlosyii
(Carloscre88)
October 31, 2012, 7:16pm
3
Ya lo he resuelto después de un buen rato peleándome,
Resumiendo.
He quitado el buttonsubmit y he añadido esto.
Por lo que he visto los links que creas también pasan la variable $_POST del item(modelo), asi que:
<div class="row buttons">
<?php if($model->isNewRecord) { ?>
<?php echo CHtml::link(
'Create',
null,
array(
'submit' => array('Item/create'),
)
); ?>
<?php } ?>
<?php if(!$model->isNewRecord) { ?>
<?php echo CHtml::link(
'Update',
null,
array(
'submit'=>array('Item/update','id'=>$model->id_item),
)
); ?>
<?php } ?>
</div>
<div class="botton">
<?php echo CHtml::link(
'Previsualizar',
null,
array(
'submit' => array('Item/preview'),
'params' => array('modelo' => $model),
'target'=>'_blank'
)
); ?></div>
Controlador action create y update igual, y en la acción preview, que salta en otra página, pones tu codigo, solo que en vez $model->save() pones $model->validate() y un redirect donde toque.
Gracias de todos modos.
robregonm
(Ricobregon)
October 31, 2012, 9:28pm
4
Es equivalente, pero por POST. El todo es que funcione.
Acá estaremos con gusto dispuestos a lo que se necesite