Link

hola buenas tardes! estoy haciendo un formulario para un cliente que puede tener mas de un numero telefónico y quiero hacer un link que diga agregar mas o otro y que me agregue en la misma pagina mas campos para agregar otros telefonos seria algo asi

tipo codigo de area telefono

                                 -->otro 

y que ahi aparezca:

tipo codigo de area telefono

para q se pueda agregar mas telefonos asi no aparecen tantos campos dentro del formulario porque tengo que dar la posibilidad de poner 4 numero telefonicos

desde ya muchas gracias :) y feliz dia de San Valentin :D

Por como lo planteas, supongo que tendrías que crear los controles para tus cuatro teléfonos y ocultar todos menos uno.

Añades un enlace al lado del primero que cuando se pulse muestre el segundo con su correspondiente enlace hacia el tercero y listo.

Puedes tener también un link para eliminar q te los oculte y ya.

El código del link para mostrar podría ser algo así:




echo CHtml::link('Otro', 

'#',

array(

'onClick'=>'$("#nombreControl").css("display", "");')

);



Y el código del link para ocultar podría ser algo así:




echo CHtml::link('Otro', 

'#',

array(

'onClick'=>'$("#nombreControl").css("display", "none");')

);



Un saludo.

voy a probar eso muchas gracias y te hago otra consulta, porque estuve probando almacenar para cada cliente 3 números telefónicos pero dos de los 3 campos me guarda vacios sin ningun valor, te paso mi controller y mi vista a ver si me podes decir cual seria mi error,




public function actionCreateAlta() 	 { 		

$model=new Entidad; 		

$data=new Cliente; 		

$a=new Telefono; 		

$data->estado_id=4; //asigna al cliente con estado pendiente		 		 		if(isset($_POST['Entidad'],$_POST['Cliente'],$_POST['Telefono'])) 		{ 			$model->attributes=$_POST['Entidad']; 			

$data->attributes=$_POST['Cliente']; 			

$a->attributes=$_POST['Telefono']; 			 			 			 			if($model->save()){ 				

$data->entidad_id=$model->id; 				

$a->entidad_id=$model->id; 				

if($data->save()){ 					

if($a->save()){ 			 				 				$this->redirect(array('view','id'=>$model->id)); 					} 				} 				 			} 		} 		

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

'model'=>$model, 			

'data'=>$data, 			

'a'=>$a, 			 		

)); 	}

y la vista seria algo asi

[html]<?php /* @var $this EntidadController / / @var $model Entidad / / @var $form CActiveForm */ ?> <div class=“form”> <?php $form=$this->beginWidget(‘CActiveForm’, array( ‘id’=>‘entidad-form’, ‘enableAjaxValidation’=>false, )); ?> <?php echo $form->errorSummary(array($model,$data,$a)); ?> <div class=“row”> <?php echo $form->labelEx($model,‘apellido’); ?> <?php echo $form->textField($model,‘apellido’,array(‘size’=>20,‘maxlength’=>20)); ?> <?php echo $form->error($model,‘apellido’); ?> </div> <div class=“row”> <?php echo $form->labelEx($model,‘nombre’); ?> <?php echo $form->textField($model,‘nombre’,array(‘size’=>20,‘maxlength’=>20)); ?> <?php echo $form->error($model,‘nombre’); ?> </div> <div class=“row”> <?php echo $form->labelEx($model,‘localidad_id’); ?> <?php echo $form->dropDownList($model,‘localidad_id’,CHtml::listData(entidad::model()->findAll(), ‘localidad_id’, ‘localidad.nombre’)); ?> <?php echo $form->error($model,‘localidad_id’); ?> </div> <div class=“row”> <?php echo $form->labelEx($model,‘domicilio’); ?> <?php echo $form->textArea($model,‘domicilio’,array(‘size’=>100,‘maxlength’=>100)); ?> <?php echo $form->error($model,‘domicilio’); ?> </div> <div class=“row”> <?php echo $form->labelEx($data,'Fecha Alta '); ?> <?php echo $form->textField($data,‘fecha_alta’, array(‘value’=>date(‘Y-m-d’))); ?> <?php echo $form->error($data,‘fecha_alta’); ?> </div> <div class=“row”> <?php echo $form->labelEx($data,‘envia_cupon’); ?> <?php echo $form->dropDownList($data,‘envia_cupon’,array(‘1’=>‘Si’,‘2’=>‘No’,));; ?> <?php echo $form->error($data,‘envia_cupon’); ?> </div> <div class=“row”> <?php echo $form->labelEx($model,‘tipo_documento’); ?> <?php echo $form->dropDownList($model,‘tipo_documento’,array(‘1’=>‘DNI’,‘2’=>‘LE’,‘3’=>‘LC’,‘4’=>‘Pasaporte’ ));; ?> <?php echo $form->error($model,‘tipo_documento’); ?> </div> <div class=“row”> <?php echo $form->labelEx($model,‘nro_documento’); ?> <?php echo $form->textField($model,‘nro_documento’); ?> <?php echo $form->error($model,‘nro_documento’); ?> </div> <div class=“row”> <?php echo $form->labelEx($data,‘tipofactura’); ?> <?php echo $form->dropDownList($data,‘tipofactura’,array(‘1’=>‘X’,‘2’=>‘A’,‘3’=>‘B’,‘4’=>‘C’,‘5’=>‘E’ ));; ?> <?php echo $form->error($data,‘tipofactura’); ?> </div> <div class=“row”> <?php echo $form->labelEx($model,‘mail’); ?> <?php echo $form->textField($model,‘mail’,array(‘size’=>20,‘maxlength’=>20)); ?> <?php echo $form->error($model,‘mail’); ?> </div> <div class=“row”> <?php echo $form->labelEx($model,‘observacion’); ?> <?php echo $form->textArea($model,‘observacion’,array(‘size’=>60,‘maxlength’=>250)); ?> <?php echo $form->error($model,‘observacion’); ?> </div> <div class=“view” border=“20”> <table border=“60”><h1>Telefonos</h1> <tr> <td><div class=“row”> <?php echo $form->labelEx($a,‘tipo’); ?> <?php echo $form->dropDownList($a,‘tipo’,array(‘1’=>‘Particular’,‘2’=>‘Celular’,‘3’=>‘Trabajo’,‘4’=>‘Otro’));; ?> <?php echo $form->error($a,‘tipo’); ?> </div></td> <td><div class=“row”> <?php echo $form->labelEx($a,‘cod_area’); ?> <?php echo $form->textField($a,‘cod_area’); ?> <?php echo $form->error($a,‘cod_area’); ?> </div></td> <td><div class=“row”> <?php echo $form->labelEx($a,‘numero’); ?> <?php echo $form->textField($a,‘numero’); ?> <?php echo $form->error($a,‘numero’); ?> </div></td> </tr> <tr> <td><div class=“row”> <?php echo $form->labelEx($a,‘tipo’); ?> <?php echo $form->dropDownList($a,‘tipo’,array(‘1’=>‘Particular’,‘2’=>‘Celular’,‘3’=>‘Trabajo’,‘4’=>‘Otro’));; ?> <?php echo $form->error($a,‘tipo’); ?> </div></td> <td><div class=“row”> <?php echo $form->labelEx($a,‘cod_area’); ?> <?php echo $form->textField($a,‘cod_area’); ?> <?php echo $form->error($a,‘cod_area’); ?> </div></td> <td><div class=“row”> <?php echo $form->labelEx($a,‘numero’); ?> <?php echo $form->textField($a,‘numero’); ?> <?php echo $form->error($a,‘numero’); ?> </div></td> </tr> <tr> <td><div class=“row”> <?php echo $form->labelEx($a,‘tipo’); ?> <?php echo $form->dropDownList($a,‘tipo’,array(‘1’=>‘Particular’,‘2’=>‘Celular’,‘3’=>‘Trabajo’,‘4’=>‘Otro’));; ?> <?php echo $form->error($a,‘tipo’); ?> </div></td> <td><div class=“row”> <?php echo $form->labelEx($a,‘cod_area’); ?> <?php echo $form->textField($a,‘cod_area’); ?> <?php echo $form->error($a,‘cod_area’); ?> </div></td> <td><div class=“row”> <?php echo $form->labelEx($a,‘numero’); ?> <?php echo $form->textField($a,‘numero’); ?> <?php echo $form->error($a,‘numero’); ?> </div></td> </tr> </table> </div> <br> <div class=“row buttons”> <?php echo CHtml::submitButton($model->isNewRecord? ‘Crear’ : ‘Guardar’); ?> </div> <?php $this->endWidget(); ?> </div><!-- form -->[/html]

[html]<?php

/* @var $this EntidadController */

/* @var $model Entidad */

/* @var $form CActiveForm */

?>

<div class="form">

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

'id'=&gt;'entidad-form',


'enableAjaxValidation'=&gt;false,

)); ?>

&lt;?php echo &#036;form-&gt;errorSummary(array(&#036;model,&#036;data,&#036;a)); ?&gt;








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


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


	&lt;?php echo &#036;form-&gt;textField(&#036;model,'apellido',array('size'=&gt;20,'maxlength'=&gt;20)); ?&gt;


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


&lt;/div&gt;





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


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


	&lt;?php echo &#036;form-&gt;textField(&#036;model,'nombre',array('size'=&gt;20,'maxlength'=&gt;20)); ?&gt;


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


&lt;/div&gt;





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


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


	&lt;?php echo &#036;form-&gt;dropDownList(&#036;model,'localidad_id',CHtml::listData(entidad::model()-&gt;findAll(), 'localidad_id', 'localidad.nombre')); ?&gt;


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


&lt;/div&gt;





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


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


	&lt;?php echo &#036;form-&gt;textArea(&#036;model,'domicilio',array('size'=&gt;100,'maxlength'=&gt;100)); ?&gt;


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


&lt;/div&gt;





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


&lt;?php echo &#036;form-&gt;labelEx(&#036;data,'Fecha Alta '); ?&gt;


&lt;?php echo &#036;form-&gt;textField(&#036;data,'fecha_alta', array('value'=&gt;date('Y-m-d'))); ?&gt;


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


&lt;/div&gt;








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


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


	&lt;?php echo &#036;form-&gt;dropDownList(&#036;data,'envia_cupon',array('1'=&gt;'Si','2'=&gt;'No',));; ?&gt;


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


&lt;/div&gt;





															


	


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


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


	&lt;?php echo &#036;form-&gt;dropDownList(&#036;model,'tipo_documento',array('1'=&gt;'DNI','2'=&gt;'LE','3'=&gt;'LC','4'=&gt;'Pasaporte'	));; ?&gt;


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


&lt;/div&gt;





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


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


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


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


&lt;/div&gt;








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


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


	&lt;?php echo &#036;form-&gt;dropDownList(&#036;data,'tipofactura',array('1'=&gt;'X','2'=&gt;'A','3'=&gt;'B','4'=&gt;'C','5'=&gt;'E'	));; ?&gt;


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


&lt;/div&gt;











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


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


	&lt;?php echo &#036;form-&gt;textField(&#036;model,'mail',array('size'=&gt;20,'maxlength'=&gt;20)); ?&gt;


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


&lt;/div&gt;





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


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


	&lt;?php echo &#036;form-&gt;textArea(&#036;model,'observacion',array('size'=&gt;60,'maxlength'=&gt;250)); ?&gt;


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


&lt;/div&gt;














 


 &lt;div class=&quot;view&quot; border=&quot;20&quot;&gt;


 &lt;table border=&quot;60&quot;&gt;&lt;h1&gt;Telefonos&lt;/h1&gt;


	&lt;tr&gt;


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


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


	&lt;?php echo &#036;form-&gt;dropDownList(&#036;a,'tipo',array('1'=&gt;'Particular','2'=&gt;'Celular','3'=&gt;'Trabajo','4'=&gt;'Otro'));; ?&gt;


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


	&lt;/div&gt;&lt;/td&gt;


	


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


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


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


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


	&lt;/div&gt;&lt;/td&gt;


	


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


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


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


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


	&lt;/div&gt;&lt;/td&gt;


	&lt;/tr&gt;	


	


	&lt;tr&gt;


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


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


	&lt;?php echo &#036;form-&gt;dropDownList(&#036;a,'tipo',array('1'=&gt;'Particular','2'=&gt;'Celular','3'=&gt;'Trabajo','4'=&gt;'Otro'));; ?&gt;


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


	&lt;/div&gt;&lt;/td&gt;


	


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


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


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


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


	&lt;/div&gt;&lt;/td&gt;


	


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


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


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


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


	&lt;/div&gt;&lt;/td&gt;


	&lt;/tr&gt;	


	&lt;tr&gt;


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


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


	&lt;?php echo &#036;form-&gt;dropDownList(&#036;a,'tipo',array('1'=&gt;'Particular','2'=&gt;'Celular','3'=&gt;'Trabajo','4'=&gt;'Otro'));; ?&gt;


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


	&lt;/div&gt;&lt;/td&gt;


	


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


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


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


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


	&lt;/div&gt;&lt;/td&gt;


	


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


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


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


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


	&lt;/div&gt;&lt;/td&gt;


	&lt;/tr&gt;











&lt;/table&gt;


&lt;/div&gt;





&lt;br&gt;








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


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


 &lt;/div&gt;

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

</div><!-- form -->

[/html]

en la parte de telefonos en la base de datos solo me guarda un telefono porque tengo la relacion de uno a muchos pero no se como hacer en el controller para q me guarde muchos telefonos.

y como creo el controler??? porq no me esta saliendo :unsure:

Buenos días.

No te está saliendo pq estás machacando todos los controles de teléfonos al irlos creando.

La estructura de tu view está correcta, pero te falta algo en todos los controles de teléfonos, crearlos como un array de controles. Para eso sólo tienes que hacer lo siguiente (por ejemplo para la caja de texto de numero):




echo $form->textField($a,'numero', array('name' => 'numero[]'));



Como vés, he establecido el name de la caja de texto. Tienes que hacer lo mismo para el resto de controles de teléfonos. Así, se enviará un array mediante post llamado numero que tendrá tantos elementos como cajas de texto existan.

En tu controller recorres esos arrays y listo. Ya tienes tu vista funcionando.

Un saludo.

muchisimas gracias :) me fue muy util tu explicacion

De nada.

Para eso estamos.

Un saludo.

Hello. I put this link

[color="#0000FF"]<li> <a href="http://localhost/fff/index.php?r=contact"> Contact Us </ a> </ li>[/color]

But when you click on Lynksh Erin’s error :

[color="#FF0000"]Error 404

Possible response to "contact" does not exist[/color]

Why contact.php page does not load?

Of course, I put a link back to this error would Qblshm

[color="#0000FF"]<li> <a href="http://localhost/fff/protected/views/site/contact.php"> Contact Us </ a> </ li>[/color]

You can test with

<li> <a href="http://localhost/fff/index.php?r=site/contact"> Contact Us </ a> </ li>

Regards.