Varios formularios en pestañas

214 views
Skip to first unread message

dhernandez

unread,
Aug 26, 2011, 7:40:52 AM8/26/11
to symfony-es
Hola a toda la lista. Este es mi primer mensaje, a ver si alguien
puede ayudarme.

Llevo 3 semanas pegando con symfony, así que soy bastante novato.

Estoy usando symfony 1.4 con Propel. Básicamente, lo que quiero hacer
es que me aparezcan varios formularios en diferentes pestañas de una
misma página (con jQuery), para editar datos. Lo de poner los
formularios en varias pestañas lo tengo con los formularios que genera
Propel, aunque me gustaría que me sirvieran los de generate-admin, no
se si esto es posible, ya que tengo que meter cada formulario en un
div distinto...

Lo siguiente que tampoco encuentro forma de hacer es que se guarden
todos los cambios hechos con un único botón, no tener que ir pestaña
por pestaña guardando los datos (los datos pertenecen a distintas
tablas, pero al mismo concepto). Por ejemplo, si edito producto, que
puede pertenecer a una o varias categorías mediante otra tabla
productos-categorias que relaciona la tabla productos y la tabla
categorías, quiero que en una pestaña se modifiquen los datos
generales del producto, en otra las categorías a las que pertenece (la
tabla productos-categorias) y poder guardar ambos cambios con un sólo
botón común a todas las pestañas.

Perdón si me he extendido demasiado.

Un saludo.

Daniel Hernández

Vicent Soria

unread,
Aug 26, 2011, 8:24:55 AM8/26/11
to symfony-es
Hola Daniel,

Ahora mismo, no se como hacer para que te funcione con los formularios
del generate-admin, pero si te puedo ayudar con lo otro.

Para guardar todos los formularios con un botón, haría que al hacer
click en ese botón, una función javascript recorra todos los
formularios y haga submit sobre cada uno de ellos. Esto lo puedes
hacer con el método .submit sobre cada formulario.

Ejemplo sacado de la documentación oficial:

Teniendo un formulario tal que así:
<form id="target" action="destination.html">
<input type="text" value="Hello there" />
<input type="submit" value="Go" />
</form>

Puedes hacer submit de la siguiente forma:
$('#target').submit();

Por tanto, teniendo varios formularios y cada uno con un id diferente,
puedes hacer el submit sobre cada id.

No es muy complicado recorrer todos los formularios y forzar el submit
mediante jquery.

Yo de ti, me crearía cada formulario dentro de una capa, y todas las
capas de formulario dentro de una capa global. Solo tienes que
recorrer los objetos form de la capa global para poder hacer el
submit.

En caso de no tener ningún formulario más en toda la página, solo los
que comentas, es mucho más fácil, solo tienes que buscar todos los
formularios así:
$('form').each(function(){
$(this).submit()
});

Seguramente tenga algún fallo de sintaxis, pero para que entiendas lo
que te quiero decir.

Espero haberte ayudado.

Saludos.

dhernandez

unread,
Aug 28, 2011, 1:18:50 PM8/28/11
to symfony-es
Gracias Vicent, suponía que tendría que hacer algo como lo que
comentas, pero no sabía exactamente qué. Ya me queda mucho más claro,
mañana intentaré implementarlo.

Lo de utilizar en pestañas los formularios generados con
propel:generate-admin sigo sin saber como hacerlo, quizá no sea
posible.

Saludos y gracias.

dhernandez

unread,
Aug 30, 2011, 7:03:17 AM8/30/11
to symfony-es
Gracias Vicent, con lo que me dices lo he solucionado.
Reply all
Reply to author
Forward
0 new messages