Foros del Web » Programación para mayores de 30 ;) » Programación General »

HTML::Template (etiquetas)

Estas en el tema de HTML::Template (etiquetas) en el foro de Programación General en Foros del Web. Hola que tal, queria saber si alguien puede explicar para que y como se utilizan las etiquetas que se utilizan en el modulo HTML::Template (estan ...
  #1 (permalink)  
Antiguo 12/06/2007, 12:23
Avatar de argalpalo  
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 5 meses
Puntos: 0
HTML::Template (etiquetas)

Hola que tal, queria saber si alguien puede explicar para que y como se utilizan las etiquetas que se utilizan en el modulo HTML::Template (estan en la documentacion pero es muy jodidod de entender) de PERL. Son estas:

<TMPL_IF " ">
<TMPL_ELSE>
</TMPL_IF>
------------------------------------------------------
<TMPL_LOOP LOOP_ONE>
....
</TMPL_LOOP>
------------------------------------------------------
<TMPL_INCLUDE NAME="filename.tmpl">
------------------------------------------------------
<TMPL_UNLESS NAME="PARAMETER_NAME"> ... </TMPL_UNLESS>
  #2 (permalink)  
Antiguo 13/06/2007, 06:20
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: HTML::Template (etiquetas)

Sabes para que sirve un template ? es para separar el diseño de la información, entonces con esas etiquetas el template coloca la INFO en la página web...

El if es un condicional, evalúa cierto dato y de ser afirmativo hace lo primero y sino ejecuta el else...

El loop sirve para cuando tenés una lista de datos y hay que colocarlos por ejemplo en una tabla, coloca cada dato en una fila distinta...

El include, simplemente llama a otro template...

El unless ejecuta el comando siempre y cuando sea falsa la evaluación...

Deberías de tener conocimientos básicos de programación como para saber estas cosas...El template sería como un mini lenguaje para colocar info en una estructura...

Espero que te sirva

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 13/06/2007, 08:08
Avatar de argalpalo  
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: HTML::Template (etiquetas)

Muchas gracias, queria tenerlo bien en claro esto, ahora, alguna idea para hacer un SELECT en unabase de datos, con AJAX? Osea la cosa es asi, tengo un sub mostrar_cosas que lo que hago dentro de este es hacer un SELECT y pasar los valosres a un TMPL.

Código:
sub Mostrar_Form {


my $db="probar";
my $host="localhost";
my $port="-";
my $userid="-t";
my $passwd="-";
my $connectionInfo="DBI:mysql:database=$db;$host:$port";


my $dbh = DBI->connect($connectionInfo,$userid,$passwd) or die print "No hay conexion con la base<br>";

my $t = HTML::Template->new(filename => 'listarautos.tmpl');

my $table_data = $dbh->prepare('SELECT descripcion,idAuto FROM rubros WHERE marca="0"');
$table_data->execute;

my $arrayref = $table_data->fetchall_arrayref({});
$t->param(ROWS => $arrayref);

$dbh->disconnect;

my $html = $t->output; 
return $html;
};
Lo mando a este TMPL

Código:
<TMPL_LOOP ROWS>
<form>
<p>
<input type="hidden" id="item" size="6">
<input type="hidden" id="namedItem" size="6">
<input type="hidden" id="mirar" size="6" value=<TMPL_VAR NAME=idRubro>>
<a href="#" onclick='jsFunc(formDump(),["out"]);return false' > <TMPL_VAR NAME=Nombre> </a></p>
</form>
</TMPL_LOOP ROWS>
<div id="out">
</div>
lo que hace esto es tirame la lista del SELECT que hice anteriormente, y tranformarme los datos que saque en botones para despues hacer con AJAX esto:

Código:
my $pjx = CGI::Ajax->new( 'jsFunc' => \&buscando);
print $pjx->build_html($q, \&Mostrar_Form, {-type=> 'text/html'});
Código:
sub buscando {

my $buffer = $ENV{'QUERY_STRING'};

my @pairs = split(/&/, $buffer);

foreach my $pair (@pairs) {

my ($name, $value) = split(/=/, $pair);


$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

$Variables{$name} = $value;

}

my $indice = "$Variables{'marca'}"; 
my $db="clasificados";
my $host="localhost";
my $port="3306";
my $userid="root";
my $passwd="zxcvbn";
my $connectionInfo="DBI:mysql:database=$db;$host:$port";
my $columna="*";
my $query = "SELECT Nombre FROM rubros WHERE parent='$indice'";

my $cgi = CGI->new;
my $dbh = DBI->connect($connectionInfo,$userid,$passwd) or die print "No hay conexion con la base<br>";

my $t = HTML::Template->new(filename => 'db.tmpl');

$t->param(ROWS => $dbh->selectall_arrayref($query, { Slice => {} }));

$dbh->disconnect;

my $html = $t->output; 
return $html;
my $t = HTML::Template->new(filename => 'db.tmpl'); en esta linea comunico con el db.tmpl e imrpmimo en el <div id="out">
</div>


El problema es que si tengo mas de 1 seleccionado no funcionan estas sentencias, pero si tengo solamente una seleccionado, funciona bien y me muestra todos los autos, de la marca que quiero. Como soluciono esto?? en donde esta el problema??
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:11.