Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Básico » Consulta sobre push()  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 9 mensajes ] 
 
Nota 2012-01-27 08:55 @413

Perlero Nuevo
Registrado: 2012-01-27 08:07 @380
Mensajes: 13
Consulta sobre push()
He empezado a realizar mi práctica profesional junto a Perl y llevo unas semanas aprendiendo gracias a este foro.

Mi consulta, que no pude encontrar en temas antiguos, es esta:

Estoy trabajando con Catalyst y HTML::FormFu.

El tema es que le paso valor mediante un array a los select que tengo en el .yml:

...
my @ambientes = ("Produccion", "Beta", "Staging");
my @ambientes_h;
foreach (@ambientes) {
push(@ambientes_h, [$_, $_]);
}
...
$select_ambientes->options(\@ambientes_h);
...

Esto funciona perfecto mostrando en el HTML mi select con un value y el nombre así:

<option value="Produccion">Produccion</option>
<option value="Beta">Beta</option>
<option value="Staging">Staging</option>


Ahora mi pregusta es:

¿Mediante el push() puedo ingresarle una clase también?
Cosa que en el HTML me lo muestre así:

<option value="Produccion" class="uno">Produccion</option>
<option value="Beta" class="uno">Beta</option>
<option value="Staging" class="dos">Staging</option>

Sería de mucha ayuda si se pudiese.
Gracias.


Nota 2012-01-27 12:48 @575
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Consulta sobre push()
Bienvenido a los foros de Perl en español, PipoRide.

¿Qué tipo de objeto es $select_ambientes?

Es que no consigo encontrar el método options()...

_________________
JF^D Perl programming


Nota 2012-01-27 12:55 @580

Perlero Nuevo
Registrado: 2012-01-27 08:07 @380
Mensajes: 13
Re: Consulta sobre push()
Muchas Gracias.
Sí, disculpa, se me olvidó poner esa línea:

my $select_ambientes = $form->get_element({ name => 'ambiente_id', type => 'Select'});

donde: my $form = $c->stash->{form};


y mi .yml es:


---
indicator: submit

elements:
...
- type: Select
name: ambiente_id
label: Seleccione Ambiente
...


Nota 2012-01-27 16:19 @721
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Consulta sobre push()
Pero, entonces... ¿$form es un objeto de HTML::FormFu?

Eso es lo que estaba preguntando...

_________________
JF^D Perl programming


Nota 2012-01-27 16:45 @740
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Consulta sobre push()  RESUELTO
Creo que ya lo tengo. Según HTML::FormFu::Element::Select, hay que definirlo en el fichero yaml, pero también se puede hacer en el array que creas:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. foreach (@ambientes) {
  2.     push @ambientes_h, {value => $_, label => $_, attributes => { class => 'uno' } };
  3. }

Al menos, esto es lo que he deducido viendo el código de HTML::FormFu::Util.

_________________
JF^D Perl programming


Nota 2012-01-30 07:09 @340

Perlero Nuevo
Registrado: 2012-01-27 08:07 @380
Mensajes: 13
Re: Consulta sobre push()
Wooooow!

Muchísimas gracias.
Sorry la demora en responder, pero el fin de semana no tenía dónde probar el código.
De verdad un increíble foro, lo recomendaré a mis compañeros.

Pueden dar el tema por RESUELTO al igual que la mayoría :D

¡ Gracias !


Nota 2012-01-30 16:30 @729

Perlero Nuevo
Registrado: 2012-01-27 08:07 @380
Mensajes: 13
Re: Consulta sobre push()
Explorer, disculpa molestarte de nuevo pero por curiosidad...

¿Cómo podría ponerle clase a un <div> que envuelve mi select?

Me explico...

Tengo ahora en mi HTML lo siguiente:

Syntax: [ Download ] [ Hide ]
Using html4strict Syntax Highlighting
  1. <div class="select label">
  2.    <label>Seleccione Maquina</label>
  3.    <select name="maquina_id">
  4.       <option class="Beta" value="1001">1001</option>
  5.       <option class="Staging" value="1">1</option>
  6.       <option class="Produccion" value="No Existe Maquina">No Existe Maquina</option>
  7.    </select>
  8. </div>
  9.  


En la primera línea me muestra <div class="select label"> pero esta clase me la asigno por defecto. ¿Cuál sería la forma de cambiarlo? ¿En el push() o directamente en mi .yml?

Saludos.


Nota 2012-01-30 16:43 @738
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10249
Re: Consulta sobre push()
Es que no sé si el fichero yaml lo generas de forma dinámica, o se trata de entramado prefabricado, como si fuese una plantilla...

La regla básica sería: todo aquello que se repite, y que es igual, en todas las salidas, debe ir en una plantilla o en un sistema fijo (como un fichero yaml fijo, por ejemplo). Y todo lo demás, toda salida dinámica, lo haremos por programa.

Pero hay matices... Por ejemplo, una vez hice una página que consistía en diversos bloques (<div> o <td>) que, cada uno, era el resultado de una salida dinámica. Entonces, debería generarlos todos por programa... pero también es cierto que muchos de ellos siempre salían con el misma aspecto o estructura (una o más <table> anidadas)... así que la solución fue híbrida: todos esos bloques tenían su propia mini-plantilla. Cogía las mini-plantillas, las rellenaba con contenido dinámico, por programa, y el resultado era un nuevo contenido que se metía en las zonas dinámicas de la plantilla global.

Depende del resultado final, claro. Incluso se podría hacer todo dinámico, sin usar ningún sistema de plantillas (cosa que no me gusta, porque entonces dejamos al diseñador web fuera de juego).

_________________
JF^D Perl programming


Nota 2012-01-31 07:51 @369

Perlero Nuevo
Registrado: 2012-01-27 08:07 @380
Mensajes: 13
Re: Consulta sobre push()
Así es, lo tengo como plantilla.

Al final lo que hice fue envolver los select en bloques y darles un id al bloque :D
Quedando así:
Syntax: [ Download ] [ Hide ]
  1. elements: 
  2. ... 
  3.   - type: Block 
  4.    id: id_bloque_tcs 
  5.    name: bloque_tcs 
  6.    elements: 
  7.      - type: Select 
  8.       name: tc 
  9.       label: Seleccione TestCase 
  10.       id: id_testcase 
  11. ... 

De igual forma muchas gracias por la explicación.

Saludos.


Responder al tema  [ 9 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO