Ingreso Multiple De Valores

MUy buenos dias con todos espero e puedan ayudar llevo varios dias tratando de buuscar una solucion a esto y no la encuentro espero me puedan ayudar de antemano gracias…

Ahi les va el problema:

Tengo tres tablas;4852

base.png

la cual Ninio_Indicador es una tabal de n-n entre ninio e indicador

y lo q deseo es ingresar tres indicadores al mismo tiempo asi

cod_nin_ind cod_nin cod_ind val_nin_ind fech_nin_ind

1 1 1 0 2013/10/10

2 1 2 0 2013/10/10

3 1 3 0 2013/10/10

pero al crear el form solo me permite ingresar un valor al mismo tiempo

4853

solo1.png

y lo q deseo es que me permita guardar 2 o mas indicadores por cada ninio y se guarden todos algo asi4854

algoasi.png

pero al momento de guardar solo me guarda el ultimo valor no de los dos, le agradeceria mucho si me pueden ayudar …

Hola Krispaz

Eso es una carga de un formulario con varios modelos.

Una posible solución general, en el controlador, en el action create, solo tienes que hacer los llamados a los diferentes modelos, es decir,

variable1 = new Model1

variable2 = new Model2

variable3 = new Model3

variable1->setAttribute(‘campodelformulario’, ‘valortraigoporGetoPOST’)

variable2->setAttribute(‘campodelformulario’, ‘valortraigoporGetoPOST’)

variable3->setAttribute(‘campodelformulario’, ‘valortraigoporGetoPOST’)

y luego

variable1->save()

variable2->save()

variable3->save()

A grosso modo asi lo puedes resolver

Saludos

Holaa, amigo por lo que entendi quieres insertar en 2 o mas modelos a la vez.

revisa este tutorial a ver si te sirve.

Saludos.

hola muchas gracias por tu ayuda, bueno la idea es esa exactamente pero debo hacer eso del mismo modelo insertar 2 o 3 veces datos del mismo modelo… pero ya que es el mismo modelo solo logra guardar el dato final ingresado y no dos… si saben cual es la manera se los agradeeria muchoo… este es el codigo q tengo

en el formulario

<p class="note">Fields with <span class="required">*</span> are required.</p>





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





<div class="row">


	<?php echo $form->labelEx($model,'cod_nin'); ?>


	<?php echo $form->textField($model,'cod_nin'); ?>


	<?php echo $form->error($model,'cod_nin'); ?>


</div>





<div class="row">


	<?php echo $form->labelEx($model,'Come más y diferente'); ?>


	<?php 


	$valor= 3;  // el valor del cod_ind al cual debe asignar e valor


	echo $form->textField($model,'cod_ind',array('hidden'=> true,'value'=> $valor)); ?>


	<?php echo $form->error($model,'cod_ind'); ?>


</div>





<div class="row">


	<?php echo $form->labelEx($model,'val_ind'); ?>


	<?php echo $form->textField($model,'val_ind'); ?>


	<?php echo $form->error($model,'val_ind'); ?>


</div>

<div class="row">

	&lt;?php echo &#036;form-&gt;labelEx(&#036;model1,'Subió de peso'); ?&gt;


    


	&lt;?php


	&#036;valor= 4;  // el valor del cod_ind al cual debe asignar e valor


	echo &#036;form-&gt;textField(&#036;model1,'cod_ind',array('hidden'=&gt; true,'value'=&gt; &#036;valor)); ?&gt;


	&lt;?php echo &#036;form-&gt;error(&#036;model1,'cod_ind'); ?&gt;


&lt;/div&gt;





&lt;div class=&quot;row&quot;&gt;


	&lt;?php echo &#036;form-&gt;labelEx(&#036;model1,'val_ind'); ?&gt;


	&lt;?php echo &#036;form-&gt;textField(&#036;model1,'val_ind'); ?&gt;


	&lt;?php echo &#036;form-&gt;error(&#036;model1,'val_ind'); ?&gt;


&lt;/div&gt;











&lt;div class=&quot;row buttons&quot;&gt;


	&lt;?php echo CHtml::submitButton(&#036;model-&gt;isNewRecord ? 'Create' : 'Save'); ?&gt;


    


    


&lt;/div&gt;

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

en elcontroller

public function actionCreate()

{


	&#036;model=new NinioIndicador;


	&#036;model1=new NinioIndicador;


	// Uncomment the following line if AJAX validation is needed


	// &#036;this-&gt;performAjaxValidation(&#036;model);





	if(isset(&#036;_POST['NinioIndicador']))


	{


		&#036;model-&gt;attributes=&#036;_POST['NinioIndicador'];


		&#036;model1-&gt;attributes=&#036;_POST['NinioIndicador'];








		if(&#036;model1-&gt;save()){


			


			if(&#036;model-&gt;save()) {


				


				&#036;this-&gt;redirect(array('view','id'=&gt;&#036;model1-&gt;cod_ninind));


				}


			


			}


			


			


			


		


	}





	&#036;this-&gt;render('create',array(


		'model'=&gt;&#036;model,


		'model1'=&gt;&#036;model1,


		));


}

y finalmente en el create.

$this->breadcrumbs=array(

'Ninio Indicadors'=&gt;array('index'),


'Create',

);

$this->menu=array(

array('label'=&gt;'List NinioIndicador', 'url'=&gt;array('index')),


array('label'=&gt;'Manage NinioIndicador', 'url'=&gt;array('admin')),

);

?>

<h1>Crear NinioIndicador</h1>

<?php $this->renderPartial(’_form’, array(‘model’=>$model,‘model1’=>$model1,)); ?>

PERO CABE RECALCAR QUE ES EL MISMO MODELO Y DEBO GUARDAR DOS VALORE EN LA MISMA TABLA GRACIAS POR SU AYUDA

Si tienes 2 elementos iguales el post que envias sobreescribe el 1º con el 2º, solo recibes 1 conjunto de datos el otro se pierde.

Utiliza arrays en este enlace se explica como se puede utilizar Enlace

Dices que solo logras guardar el dato final, eso si, pero guarda 2 veces el mismo dato no?

Es decir envias item1, item2

Se guarda item2,item2

Saludos

rahif…

es exactamente como lo describes solo se guarda el ultimo pero necesito q se guarden los dos…

Muchas gracias voy aprobar lo del array y les aviso como me vaa … de antemano gracias

Buenos días.

Para guardar varios registros con sólo un objeto modelo sería así:




$model=new NinioIndicador;


$model->valorNinio = $_POST['nimio1'];

$model->save();


$model->isNewRecord = true; // Esta es la línea clave, ya q indica q se trata de un nuevo registro.


$model->valorNinio = $_POST['nimio2'];

$model->save();




Esto guardará 2 registros en la tabla a la q se refiere el modelo. Tendrás q adaptarlo a la estructura de tus valores POST, claro.

Un saludo.

Disculpa ese codigo debo colorcarlo en el _form del modelo NInioIndicador o en el create del ninio…

Buenas y perdona por la tardanza.

En el controller, por ejemplo en el actionCreate().

Un saludo.