Yii Framework Forum: Generar Campos Dinamicamente En Formulario En Yii Framework - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Generar Campos Dinamicamente En Formulario En Yii Framework Rate Topic: -----

#1 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 25 November 2013 - 04:51 PM

Hola tengo una cosa que me obstaculiza es esta: tengo mi formulario hecho con gii y todo me funciona muy bien pero como haria usando un ajax button haga que cada vez que le haga click me genere un nuevo campo un textField por ejemplo. Osea cada vez que haga click a mi ajaxButton me genere un nuevo campo y si le hago otra vez click tenga otro campo y asi sucesivamente si tienen otras ideas o ejemplos son bienvenidos.gracias de antemano.
0

#2 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 595
  • Joined: 30-July 09
  • Location:Colombia

Posted 25 November 2013 - 05:19 PM

Este proceso se debe hacer inevitablemete con JS (puede ser mezclado con Ajax según necesidades).
Ud debe crear una plantilla con el código HTML que necesita para cada campo y guardar eso en una variable de JS, luego cada vez que haga click en el botón agregar, desde JS escribe la plantilla en un tag que haya definido previamente para eso.
Así un HTMLp ara ese proposito quedaría algo así:
<div class="campos">
  <div class="campo">....</div>
  <div class="campo">...</div>
  <div class="nuevoCampo">//Acá agregará el código cada vez que haga click en "Agregar"</div>
</div>



Saludos.
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#3 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 25 November 2013 - 05:41 PM

Hola la idea esta genial pero no soy tan experto en la parte usar js en yii podrias poner un ejemplo aunq pekeño para q lo entienda mejor xfaaaa gracias por tu respuesta
0

#4 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 27 November 2013 - 10:17 AM

Hola tal vez sea algo facil pero no puedo entender bien esta parte de tu respuesta
" desde JS escribe la plantilla en un tag que haya definido previamente para eso."
0

#5 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 27 November 2013 - 11:27 AM

ejejej ya lo entendi ahora la duda es la siguiente una vez q hago click aparece el nuevo campo pero al segundo click no pasa nada hay algun modo de controlar el numero de click q se hace para poder poner mas campos? cual seria la forma? gracias
0

#6 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 27 November 2013 - 12:05 PM

<script type="text/javascript">
var contador=0;

function campoDinamico(){


var Html = document.getElementById('prueba').innerHTML;
if(contador==0)
{


document.getElementById('nuevo').innerHTML = Html;
}
contador++;
else
{
if(contador==1)
document.getElementById('nuevo1').innerHTML = 'SegundoClick';
}
}


</script>
Cuando no esta el else al hacer click genera el nuevo campo a <div id= "nuevo"></div> y loq kiero es que tambien genere el campo a <div id="nuevo1"></div> pero cuando le aumento el else para que aumente el segundo campo no me genera nada ni el primero ni el segundo todo se arruina es raro o no lo estoy haciendo bien Sabes cual podria ser mi error?
0

#7 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 11-July 13

Posted 29 November 2013 - 01:21 PM

porque se genera un nuevo elemento con el mismo id. Al duplicar un id javascript falla.
Tienes que duplicar y modificar el id para que sea único.
0

#8 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 29 November 2013 - 05:41 PM

jejejejeje conq era asi de simple? pero no lo sabia graciassssss me salvaste la vida
0

#9 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 29 November 2013 - 05:58 PM

Hola de nuevo los campos se generan muy bien por cada click pero ahora q kiero hacer click al boton de submit y dejo un campo vacio para ver la validacion de formulario los campos nuevos generados dinamicamente desaparecen como haria para que eso no ocurra? osea al darme un error de validacion por tener un campo en blanco se mantengan tb los campos generados dinamicamente gracias de antemano yyyyyyyyyyyyyy tb me di cuenta que los textField cuando da error de validacion de formulario mantienen sus datos escritos eso esta bien para no volver a escribirlos pero eso no ocurre con los fileFields xq? deq manera hago para q tb en los fileFields se mantengan los nombres de los archivos q invoke al darme error de validacion?
0

#10 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 11-July 13

Posted 01 December 2013 - 12:04 PM

crea los campos dinamicamente pero como un array, la base es esta enlace, fijate que la validacion se hace para los n elementos, y al formar el formulario ya no recibes un elemento sino un array de elementos. (Si mantienes la estructura de array la validación también se mantiene parea cada elemento)

Y mira por donde hoy alguien a puesto una extensión sobre esto y parece buena extensión, mira la demo.
0

#11 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 01 December 2013 - 05:31 PM

La extension esta genial!!! pero como capturaria cada dato en una nueva instancia de un modelo el enlace de arriba ya lo vi pero nom funciona por que no le entiendo bien sera xq soy nuevo en yii framework he buscado otras opciones pero nada solo hay ese enlace y sinceramente no lo entiendo
0

#12 User is offline   k9999 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 50
  • Joined: 31-October 13

Posted 01 December 2013 - 05:34 PM

Loq menos entiendo es esto
<?php foreach($items as $i=>$item): ?>
<tr>
<td><?php echo CHtml::activeTextField($item,"[$i]name"); ?></td>
<td><?php echo CHtml::activeTextField($item,"[$i]price"); ?></td>
<td><?php echo CHtml::activeTextField($item,"[$i]count"); ?></td>
<td><?php echo CHtml::activeTextArea($item,"[$i]description"); ?></td>
</tr>

en especial :
[$i]name" ?????????????????????????????????????????
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users