[RESUELTO] Error al pasar datos via post entre vista y formularios

Hola Comunidad,

Dentro de mi aplicación y dentro de una vista he creado un link para que acceda a un formulario para permitir crear una relación.




<div class="row buttons">

     <?php echo CHtml::link('Relacionar con Servicios', array(

         'submit'=>array('TbPersonasServicios/desdeEntidad', 'id'=>$model->ID_ENTI_PER);?> 

</div> 



hasta ahora he puesto que el link para pasar el parametro (id_enti_per), ahora lo que estoy intentando es que en el form que se muestra (TbPersonasServicios/desdeEntidad), este valor sea trasladado a un campo llamado (ID_ENTI_PER) dentro del formulario para que en lugar muestre el nombre del usuario o el valor de la variable.

dentro del controller (TbPersonasServiciosController) he creado esta action para asignar el valor a la variable.




public function actionDesdeEntidad($id=null)

            {

                $model=new TbPersonasServicios;

                $valor =$_GET['id'];         

                             

                var_dump($valor);

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

		{

			

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

                        $model->ID_ENTI_PER = $valor;

			if($model->save())

				$this->redirect(array('view','id'=>$model->ID_PERS_SERVICIO));

		}


		$this->render('desdeEntidad',array(

			'model'=>$model,

		));

                var_dump ($valor);

       



en el form no se como pasar el $valor al campo del formulario… me muestra null, tengo puesto lo siguiente:





<div class="form">


<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'tb-personas-servicios-desdeEntidad-form',

	'enableAjaxValidation'=>false,

)); ?>


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


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


	<div class="row">

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

                   <?php $model->ID_ENTI_PER = $valor;

                   echo $form->textField($model,'ID_ENTI_PER',array('readonly'=>true) ); ?>

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

	</div>


	<div class="row">

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

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

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

	</div>


	<div class="row">

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

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

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

	</div>


	<div class="row">

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

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

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

	</div>


	<div class="row">

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

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

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

	</div>




	<div class="row buttons">

		<?php echo CHtml::submitButton('Submit'); ?>

	</div>


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




me he quedado atascado ye no sé muy bien como hacerlo para que tome el valor correcto y el valor de la variable esta en null.

Puede alguien indicarme algun ejemplo o decirme donde tengo el error…

gracias por vuestro tiempo.

hola,

nadie me echa un cable…

gracias.

Hola bocatadepanceta.

Si en el action DesdeEntidad, estas recibiendo correctamente la variable $valor, osea que se esta haciendo esto bien:




  $valor =$_GET['id']; //Este valor lo estas recibiendo correctamente.



Yo lo tienes practicamente resuelto, simplemente debes enviar dicho parametro en el render que estas haciendo de la vista desdeEntidad. Debes hacer lo siqguiente:




  ...


  $this->render('desdeEntidad',array(

                        'model'=>$model,

                        'valor'=>$valor,

                ));



Y en le formulario simplemente asignar $valor al campo que necesitas, de la siguinete forma:




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


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


        <div class="row">

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

                <?php echo $form->textField($model,'ID_ENTI_PER',array('readonly'=>true, 'value'=>$valor)); ?> //Aqui asignas al campo la variable $valor 

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

        </div>


        <div class="row">

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

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

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

        </div>


        ...



Creo que con eso funcionaria lo que necesitas, espero sea eso.

Saludos.

Hola Gifrancohe,

Realizado los ajustes que me indicas, queda perfecto.

1k gracias por tu tiempo.

Que bueno que te haya funcionado.

Saludos.