Tema: CGI::Ajax
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/06/2007, 07:43
Avatar de argalpalo
argalpalo
 
Fecha de Ingreso: noviembre-2006
Mensajes: 35
Antigüedad: 18 años
Puntos: 0
Re: CGI::Ajax

Tengo el suiguiente codigo:

Código:
Perl:
#! /usr/bin/perl -w
use strict;
use CGI::Ajax;
use CGI;
use DBI;
use HTML::Template;

my $q = new CGI;
my (%Variables);

my $buscando = sub {

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{'nombre'}"."%";
my $db="probando";
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 * FROM opiniones WHERE (nombre LIKE '$indice') OR (mail LIKE '$indice') OR (direccion LIKE '$indice') OR (opinion LIKE '$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;

print $cgi->header;
print $t->output;
};

my $Mostrar_Form = sub {
  my $html = <<EOT
<HTML>
<BODY>
<form>
<input type="hidden" id="item" size="6">
<input type="hidden" id="namedItem" size="6">
<input type="text" id="nombre" size="6" value=1 ><br/>
<button onclick='jsFunc(formDump(),["out"]);return false' > Buscar </button>
<div id="out">
</div>
</form>
</BODY>
</HTML>
EOT
;

  return $html;
};

my $pjx = CGI::Ajax->new( 'jsFunc' => $buscando);
print $pjx->build_html($q,$Mostrar_Form); # fin

Lo que hace este codigo es una busqueda en una base de datos y mostrarla en una tabla creada con un TMPL. El problema es que cuadno imprimo la tabla me sale Content-Type: text/html; charset=ISO-8859-1 1 en la ultima fila de la primera columna. Probe tambien imprimnendo los resultados sin tabla ni nada, pero tambien me sale lo mismo. Que tendria que cambiarle al codigo??