Ocultar unas filas del formulario dinamicamente

128 views
Skip to first unread message

Ana

unread,
Jul 20, 2011, 5:45:34 PM7/20/11
to symfony-es
Les explico, tengo un formulario generado con admiin generator, con
varios campos, ejemplo: cedula, nombre, direccion, telefono. Yo
quiero, que cuando le den "nuevo" y entren en el formulario, les
aparezca solo la cedula, y al tipearla y presionar Enter, aparezcan
los otros tres campos. Estuve haciendo unas pruebas con javascript
utilizando esto:
document.getElementById('campo').style.display='block'; y me oculta
el campo, pero no he podido hacer que me oculte el label, y mucho
menos la fila ya que en un momento logre quitandole el nombre al label
a traves de la clase form con setLabel, false, pero igual a la vista
se ve que hay una fila alli sin nada, me lo deja asi.

cedula |_________|
nombre
direccion
telefono

o asi
cedula |_________|
______________________
______________________
______________________
______________________

quiero que inicialmente aparezca solo cedula
cedula |_________|

Como puedo hacerlo, gracias.
Si no me entienden lo explico de otra manera. Gracias espero su
respuesta.

Moises Burgos

unread,
Jul 20, 2011, 5:53:47 PM7/20/11
to symfo...@googlegroups.com
Supongo que con jQuery se te haría mucho mas fácil hacer lo que deseas, le asignas un id o class a la fila y con las funciones que trae jQuery, puedes ocultarlo y mostrarlo cuando ocurran los eventos que esperas...

Saludos...

> --
> Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.
>

ana

unread,
Jul 20, 2011, 6:01:50 PM7/20/11
to symfo...@googlegroups.com
Si bueno, el detalle es no se exactamente con que funcion, atributo,
etc...asignarle el id a la fila, lo hice con el admin-generator,
supongo que es en la clase del form pero aun no se como se hace.
gracias.

El 20/07/11, Moises Burgos <mdbu...@gmail.com> escribió:

Moises Burgos

unread,
Jul 20, 2011, 6:12:18 PM7/20/11
to symfo...@googlegroups.com
Este enlace te puede dar luces de como puede hacerse
http://api.jquery.com/hide/

en cuanto a que este hecho con el admin-generator, supongo que tendrás que dar con la plantilla que se genera en la cache y sobre-escribirla en un modulo llamado de igual forma...

Saludos...

ana

unread,
Jul 20, 2011, 6:13:50 PM7/20/11
to symfo...@googlegroups.com
Gracias Moises, probaré de esa manera.

theo

unread,
Jul 21, 2011, 3:14:21 AM7/21/11
to symfony-es
Hola ana:

Decirte que yo ocultar campos nunca lo hice con symfony pero modificar
la apariencia de un form hecho con admin generator si.

la template que tienes que modificar se llama _form_fieldset.php. Yo
lo que hice es ordenar los campos en columnas y con un orden
determinado. Aunque si lo que quieres hacer es solo ponerle un <div> y
un id para ocultarlo es mucho mas facil.
Seria algo asi:
<?php foreach ($fields as $name => $field): ?>
<?php if ((isset($form[$name]) && $form[$name]->isHidden()) || (!
isset($form[$name]) && $field->isReal())) continue ?>
<?php if ($name=='nombre'): ?>
<div id="nombre">
<?php elseif ($name=='direccion'): ?>
</div>
<div id="direccion">
<?php endif; ?>

//esto es donde se agrega el partial
//para un campo en concreto(label y widget)
<?php include_partial('expediente/form_field', array(
'name' => $name,
'attributes' => $field->getConfig('attributes', array()),
'label' => $field->getConfig('label'),
'help' => $field->getConfig('help'),
'form' => $form,
'field' => $field,
'class' => 'sf_admin_form_row sf_admin_'.strtolower($field-
>getType()).' sf_admin_form_field_'.$name,
)) ?>


//esto es para cerrar el ultimo div que pongas
<?php if ($name=='direccion'): ?>
</div>
<?php endif; ?>
<?php endforeach; ?>

asi tendrias el label y el widget todo dentro de un mismo div con un
id unico para poder ocultarlo o aplicarle CSS.

Espero haberte ayudado en algo.

Un saludo :)

On 21 jul, 00:13, ana <anacris...@gmail.com> wrote:
> Gracias Moises, probaré de esa manera.
>
> El 20/07/11, Moises Burgos <mdbur...@gmail.com> escribió:
>
>
>
>
>
>
>
> > Este enlace te puede dar luces de como puede hacerse
> >http://api.jquery.com/hide/
>
> > en cuanto a que este hecho con el admin-generator, supongo que tendrás que
> > dar con la plantilla que se genera en la cache y sobre-escribirla en un
> > modulo llamado de igual forma...
>
> > Saludos...
>
> > El 20/07/2011, a las 17:31, ana escribió:
>
> >> Si bueno, el detalle es no se exactamente con que funcion, atributo,
> >> etc...asignarle el id a la fila,  lo hice con el admin-generator,
> >> supongo que es en la clase del form pero aun no se como se hace.
> >> gracias.
>
> >> El 20/07/11, Moises Burgos <mdbur...@gmail.com> escribió:

JERONIMO SALAZAR RAMIREZ

unread,
Jul 21, 2011, 1:34:59 PM7/21/11
to symfo...@googlegroups.com
No hay necesidad de agregar nada, el admin ya te genera un div que contiene todo, revisa el HTML generado.
-------------------------------------------------------
Si programas  en PHP, usa Symfony
-------------------------------------------------------
Navega mas seguro con FireFox
------------------------------------------------------


ana

unread,
Jul 24, 2011, 9:31:35 AM7/24/11
to symfo...@googlegroups.com
Buen dia, gracias por sus respuestas. A la final lo solucioné con lo
indicado por theo. Y si revisé Jerónimo lo que colocas pero el div no
lo genera por fila sino completo. O a menos que no supe buscar.
Gracias a todos.

El 21/07/11, JERONIMO SALAZAR RAMIREZ <jsr...@gmail.com> escribió:

> Si programas en PHP, usa Symfony <http://www.symfony.com>


> -------------------------------------------------------
> Navega mas seguro con FireFox
> ------------------------------------------------------
>

Reply all
Reply to author
Forward
0 new messages