Using perl Syntax Highlighting
BEGIN{ @INC=(@INC,"/var/www/cgi-bin/comun"); }
use binar10_html;
use strict;
&frm_inicio();
exit;
sub frm_inicio {
my($frm_p,@des_mod,%lab_des_mod);
push @des_mod,'0'; $lab_des_mod{'0'}='Selecciona un año'; $i=1;
($rs,$fetch)=record(db=>"fir2006",tabla=>"programa",condicion=>"group by 1 order by 1",campos=>"anio",alias=>"anio",visible=>"si");
while($fetch->()) {
$des_mod[$i]=($$rs{anio});
$lab_des_mod{$des_mod[$i]}=$$rs{anio};
$i++;
}
$frm_p=new HTML::Table(-rows=>5,-cols=>2,-border=>0,-bgcolor=>0,-width=>"80%",-spacing=>0,-padding=>0,-class=>'tablaP');
$frm_p->setCell(1,1, "<div id='demoIzq'>".popup_menu(-name=>'mod_inve',-id=>'mod_inve',-value=>[(@des_mod)],-labels=>{%lab_des_mod},-class=>'cur',-onChange=>'cargaContenido(this.id)')."<div>");
$frm_p->setCell(2,1, "<div id='demoDer'><div>");
print header(-type=>'text/html',-expires=>'-20d',-cache-control=>'no-cache, must-revalidate');
print start_html(-title=>'DESARROLLOS',
-script=>[
{ -language => 'JavaScript', -src => $server.'/script/comun/combos.js' }
],
-background=>'#336699',
-action=>$script_name,
-name=>'form',
-id =>'form',
-BGCOLOR=>'#ffffff',
-style=> {-src=>$server.'/desarrollo/desarrollo.css'},
-link=>'#0000ee',
-vlink=>'#0000ee',
-onload=>$onload
);
print"<center>";
$frm_p->print;
print end_form();
print "</center>";
print end_html();
exit;
}
use binar10_html;
use strict;
&frm_inicio();
exit;
sub frm_inicio {
my($frm_p,@des_mod,%lab_des_mod);
push @des_mod,'0'; $lab_des_mod{'0'}='Selecciona un año'; $i=1;
($rs,$fetch)=record(db=>"fir2006",tabla=>"programa",condicion=>"group by 1 order by 1",campos=>"anio",alias=>"anio",visible=>"si");
while($fetch->()) {
$des_mod[$i]=($$rs{anio});
$lab_des_mod{$des_mod[$i]}=$$rs{anio};
$i++;
}
$frm_p=new HTML::Table(-rows=>5,-cols=>2,-border=>0,-bgcolor=>0,-width=>"80%",-spacing=>0,-padding=>0,-class=>'tablaP');
$frm_p->setCell(1,1, "<div id='demoIzq'>".popup_menu(-name=>'mod_inve',-id=>'mod_inve',-value=>[(@des_mod)],-labels=>{%lab_des_mod},-class=>'cur',-onChange=>'cargaContenido(this.id)')."<div>");
$frm_p->setCell(2,1, "<div id='demoDer'><div>");
print header(-type=>'text/html',-expires=>'-20d',-cache-control=>'no-cache, must-revalidate');
print start_html(-title=>'DESARROLLOS',
-script=>[
{ -language => 'JavaScript', -src => $server.'/script/comun/combos.js' }
],
-background=>'#336699',
-action=>$script_name,
-name=>'form',
-id =>'form',
-BGCOLOR=>'#ffffff',
-style=> {-src=>$server.'/desarrollo/desarrollo.css'},
-link=>'#0000ee',
-vlink=>'#0000ee',
-onload=>$onload
);
print"<center>";
$frm_p->print;
print end_form();
print "</center>";
print end_html();
exit;
}
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4
Este script funciona bien,lo que hace es mandar a llamar a otro script mediante el ajax. Aqui pongo el archivo js que estoy utilizando.
Using javascript Syntax Highlighting
// Declaro los selects que componen el documento HTML. Su atributo ID debe figurar aqui.
var listadoSelects=new Array();
listadoSelects[0]="mod_inve";
//listadoSelects[1]="estados";
function buscarEnArray(array, dato)
{
// Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra
var x=0;
while(array[x])
{
if(array[x]==dato) return x;
x++;
}
return null;
}
function cargaContenido(idSelectOrigen)
{
// Obtengo el select que el usuario modifico
var selectOrigen=document.getElementById(idSelectOrigen);
// Obtengo la opcion que el usuario selecciono
var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
var ajax=nuevoAjax();
//ajax.open("GET", "combo_proceso.cgi?db=admin&opcion="+opcionSeleccionada, true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
//selectDestino.parentNode.innerHTML=ajax.responseText;
demoDer.innerHTML=ajax.responseText;
}
}
ajax.open("POST","combo_proceso.cgi",true);
ajax.send("opcion="+opcionSeleccionada)
}
var listadoSelects=new Array();
listadoSelects[0]="mod_inve";
//listadoSelects[1]="estados";
function buscarEnArray(array, dato)
{
// Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra
var x=0;
while(array[x])
{
if(array[x]==dato) return x;
x++;
}
return null;
}
function cargaContenido(idSelectOrigen)
{
// Obtengo el select que el usuario modifico
var selectOrigen=document.getElementById(idSelectOrigen);
// Obtengo la opcion que el usuario selecciono
var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
var ajax=nuevoAjax();
//ajax.open("GET", "combo_proceso.cgi?db=admin&opcion="+opcionSeleccionada, true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
//selectDestino.parentNode.innerHTML=ajax.responseText;
demoDer.innerHTML=ajax.responseText;
}
}
ajax.open("POST","combo_proceso.cgi",true);
ajax.send("opcion="+opcionSeleccionada)
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
El problema que tengo es que aun no sé cómo pasar los parámetros de este script hacia el primero y de ahí esos parámetros sean validados mediante JavaScript. Ya que en este script estoy utilizando una rutina para que me seleccione varias casillas dependiendo la opción seleccionada. Aquí pongo el script y agradecería su ayuda.
Using perl Syntax Highlighting
BEGIN{ @INC=(@INC,"/var/www/cgi-bin/comun"); }
use binar10_html;
use strict;
use vars qw($option1);
if($FORM{opcion}) { &buscaModelo(); }
#&buscaModelo();
exit;
sub buscaModelo {
my($table2,$fiscales,$especiales,$r,$r2,$table00,@option1);
($rs,$fetch)=record(db=>"fir2006",tabla=>"programa",condicion=>"WHERE anio=$FORM{opcion} order by 3 desc,1 asc",campos=>"clvprograma,descripcion,tipo",visible=>"no");
#($rs,$fetch)=record(db=>"fir2006",tabla=>"programa",condicion=>"WHERE anio=2008 order by 3 desc,1 asc",campos=>"clvprograma,descripcion,tipo",visible=>"no");
$fiscales=new HTML::Table(-cols=>1,-border=>0,-bgcolor=>0,-width=>"95%",-spacing=>0,-padding=>0);
$especiales=new HTML::Table(-cols=>1,-border=>0,-bgcolor=>0,-width=>"95%",-spacing=>0,-padding=>0);
$r=0; $r2=0; $i=0;
while($fetch->()){
if ($$rs{tipo} eq 'F') {
$r++;
$fiscales->setCell($r,1, "<input name=\"P$$rs{clvprograma}\" type='checkbox' checked disabled > $$rs{descripcion}");
$fiscales->setCellAlign($r,1,"left");
} else {
$r2++;
$especiales->setCell($r2,1, "<input name=\"P$$rs{clvprograma}\" type='checkbox' checked disabled > $$rs{descripcion}");
$especiales->setCellAlign($r2,1,"left");
}
push @option1, "option_array1[$i]="."'P".$$rs{clvprograma}."'"; $i++;
}
$option1=join("; ", @option1);
$table2 = new HTML::Table(-row=>2, -cols=>4, -border=>0, -bgcolor=>0, -width=>"100%", -spacing=>3, -padding=>1);
$table2->setCell(1,1, " <b>FISCALES</b> ");
$table2->setCell(1,2, "<input name='tipo_prog' type='radio' value='F' onClick='activaprogramas(1);' checked>");
$table2->setCell(2,1, " <b>ESPECIALES</b> ");
$table2->setCell(2,2, "<input name='tipo_prog' type='radio' value='E' onClick='activaprogramas(2);'>");
$table2->setCell(1,3, " <b>SELECCIONAR</b> ");
$table2->setCell(1,4, "<input name='tipo_prog' type='radio' value='S' onClick='activaprogramas(3);'>");
$table00 = new HTML::Table(-rows=>2,-cols=>2,-border=>0,-bgcolor=>0,-width=>"100%",-spacing=>1,-padding=>1,-class=>'tablaC');
$table00->setCell(1,1, "<fieldset><legend><font class=\"sBL4b\"><b>SELECCIONE UNA OPCION </b></legend></font>".$table2->getTable."</fieldset>");
$table00->setCell(2,1, "<fieldset><legend><font class=\"sBL4b\"><b>PROGRAMAS FISCALES </b></legend></font>".$fiscales->getTable."</fieldset>");
$table00->setCell(2,2, "<fieldset><legend><font class=\"sBL4b\"><b>PROGRAMAS ESPECIALES </b></legend></font>".$especiales->getTable."</fieldset>");
$table00->setCellVAlign(2,1, "TOP");
$table00->setCellVAlign(2,2, "TOP");
$table00->setCellWidth(2, 1, "50%");
$table00->setCellWidth(2, 2, "50%");
$table00->setCellColSpan(1,1,2);
#print header(-type=>'text/html',-expires=>'-20d',-cache-control=>'no-cache, must-revalidate');
print header();
print start_html(-title=>'FIRCO',
-script=>[
{ -language => 'JavaScript', -src => $server.'/script/comun/validaprog.js' }
],
-background=>'#336699',
-action=>$script_name,
-name=>'form',
-id =>'form',
-BGCOLOR=>'#ffffff',
-style=> {-src=>$server.'/firco/firco.css'},
);
print"<center>";
print '<center>';
$table00->print;
print '</center>';
print end_html();
use binar10_html;
use strict;
use vars qw($option1);
if($FORM{opcion}) { &buscaModelo(); }
#&buscaModelo();
exit;
sub buscaModelo {
my($table2,$fiscales,$especiales,$r,$r2,$table00,@option1);
($rs,$fetch)=record(db=>"fir2006",tabla=>"programa",condicion=>"WHERE anio=$FORM{opcion} order by 3 desc,1 asc",campos=>"clvprograma,descripcion,tipo",visible=>"no");
#($rs,$fetch)=record(db=>"fir2006",tabla=>"programa",condicion=>"WHERE anio=2008 order by 3 desc,1 asc",campos=>"clvprograma,descripcion,tipo",visible=>"no");
$fiscales=new HTML::Table(-cols=>1,-border=>0,-bgcolor=>0,-width=>"95%",-spacing=>0,-padding=>0);
$especiales=new HTML::Table(-cols=>1,-border=>0,-bgcolor=>0,-width=>"95%",-spacing=>0,-padding=>0);
$r=0; $r2=0; $i=0;
while($fetch->()){
if ($$rs{tipo} eq 'F') {
$r++;
$fiscales->setCell($r,1, "<input name=\"P$$rs{clvprograma}\" type='checkbox' checked disabled > $$rs{descripcion}");
$fiscales->setCellAlign($r,1,"left");
} else {
$r2++;
$especiales->setCell($r2,1, "<input name=\"P$$rs{clvprograma}\" type='checkbox' checked disabled > $$rs{descripcion}");
$especiales->setCellAlign($r2,1,"left");
}
push @option1, "option_array1[$i]="."'P".$$rs{clvprograma}."'"; $i++;
}
$option1=join("; ", @option1);
$table2 = new HTML::Table(-row=>2, -cols=>4, -border=>0, -bgcolor=>0, -width=>"100%", -spacing=>3, -padding=>1);
$table2->setCell(1,1, " <b>FISCALES</b> ");
$table2->setCell(1,2, "<input name='tipo_prog' type='radio' value='F' onClick='activaprogramas(1);' checked>");
$table2->setCell(2,1, " <b>ESPECIALES</b> ");
$table2->setCell(2,2, "<input name='tipo_prog' type='radio' value='E' onClick='activaprogramas(2);'>");
$table2->setCell(1,3, " <b>SELECCIONAR</b> ");
$table2->setCell(1,4, "<input name='tipo_prog' type='radio' value='S' onClick='activaprogramas(3);'>");
$table00 = new HTML::Table(-rows=>2,-cols=>2,-border=>0,-bgcolor=>0,-width=>"100%",-spacing=>1,-padding=>1,-class=>'tablaC');
$table00->setCell(1,1, "<fieldset><legend><font class=\"sBL4b\"><b>SELECCIONE UNA OPCION </b></legend></font>".$table2->getTable."</fieldset>");
$table00->setCell(2,1, "<fieldset><legend><font class=\"sBL4b\"><b>PROGRAMAS FISCALES </b></legend></font>".$fiscales->getTable."</fieldset>");
$table00->setCell(2,2, "<fieldset><legend><font class=\"sBL4b\"><b>PROGRAMAS ESPECIALES </b></legend></font>".$especiales->getTable."</fieldset>");
$table00->setCellVAlign(2,1, "TOP");
$table00->setCellVAlign(2,2, "TOP");
$table00->setCellWidth(2, 1, "50%");
$table00->setCellWidth(2, 2, "50%");
$table00->setCellColSpan(1,1,2);
#print header(-type=>'text/html',-expires=>'-20d',-cache-control=>'no-cache, must-revalidate');
print header();
print start_html(-title=>'FIRCO',
-script=>[
{ -language => 'JavaScript', -src => $server.'/script/comun/validaprog.js' }
],
-background=>'#336699',
-action=>$script_name,
-name=>'form',
-id =>'form',
-BGCOLOR=>'#ffffff',
-style=> {-src=>$server.'/firco/firco.css'},
);
print"<center>";
print '<center>';
$table00->print;
print '</center>';
print end_html();
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Quiero pasar como parámetro el contenido de la variable $option1, para que pueda validar los chekbox.
Saludos