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

Cambio de informacion en un formulario por parte del servidor

Estas en el tema de Cambio de informacion en un formulario por parte del servidor en el foro de Programación General en Foros del Web. Hasta el momento para poder coordinar dos popup menu, la mejor alternativa es utilizar javascript, pero estoy en el dilema de que la informacion es ...
  #1 (permalink)  
Antiguo 02/08/2004, 11:50
ezk
 
Fecha de Ingreso: agosto-2004
Ubicación: de requinoa... ¿alguien sabe?
Mensajes: 47
Antigüedad: 20 años, 6 meses
Puntos: 0
Cambio de informacion en un formulario por parte del servidor

Hasta el momento para poder coordinar dos popup menu, la mejor alternativa es utilizar javascript, pero estoy en el dilema de que la informacion es de una cantidad asombrosa que lo que deseo hacer es coordinar dos popup menu que al momento de cambiar uno realice un submit y pueda cargar el segundo popup menu con los datos obtenidos de la base de datos.

el primer popup menu contiene los nombres de todas las comunas de Chile, y que al momento de cambiar este, actualice el segundo popup menu con los establecimientos educacionales de la comuna seleccionada. ¿Se entiende?

es esto posible hacerlo????? yo creo que si debido a la filosofia 'TMTOWTDI' de Perl

saludos

P.D: es solicitado varaias veces esta ayuda en distintos sitios y listas, no se si yo soy el complicado o realmente lo mejor es javascript, pero la cantidad de comunas en Chile son 342 comunas y un total de 9832 establecimientos registrados en el sistema... mucha informacion para cargar nombres y los campos de identificacion de cada uno de estos datos... ¿no lo creen?
  #2 (permalink)  
Antiguo 02/08/2004, 12:18
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Estás en lo correcto, es mucha info para usarlo solo con javascript, lo que hago yo es fácil, y utiliza tanto javascript como PERL y capas (<div> y </div) de html

para hacerlo mas fácil usaremos una sola página, luego vos fijate como hacerlo por popup, en la página en donde están las opciones de html, coloca este javascript

Código:
function writeLayer(layerID,txt){
        if(document.getElementById){
                document.getElementById(layerID).innerHTML=txt;
        }else if(document.all){
                document.all[layerID].innerHTML=txt;
        }else if(document.layers){
                with(document.layers[layerID].document){
                        open();
                        write(txt);
                        close();
                }
        }
}
Además en ese html coloca lo siguiente en donde quieres que estén los sesultados

<div id="resultados"></div>

Ahora bien, en el primer select que tienes (comunas) has que cuando alguien seleccione una opción se valla al .pl que genere la base de datos con la data que tiene que devolver, para lo cual vamos a llamar a la función que colocamos más arriba pasándole por parámetro los resultados, de esta manera:

Código:
        print "<SCRIPT LANGUAJE=\"JavaScript\">\n";
        print "if(self.opener){myVar=self.opener.top;}\n";
        print "if(self.opener){myVar=self.opener; }\n";

        print "myVar.writeLayer('resultados','$div_contenido'); \n";

        print "\nwindow.close();\n";
        print "</SCRIPT>\n";
Entonces esta ventana, mandará la info a la página que la creó, y se auto-cerrará. Dicha info se colocará en el div resultados

Espero que te sirva
PD: Este truco me lo enceñó kidd, agradecele a el también !!!
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 02/08/2004, 14:27
ezk
 
Fecha de Ingreso: agosto-2004
Ubicación: de requinoa... ¿alguien sabe?
Mensajes: 47
Antigüedad: 20 años, 6 meses
Puntos: 0
Muchas gracias, a kidd tambien. Me ha resultado y luego de eso un amigo me dio tambien otra solucion, la menciono para aquellos que les interese.

este es el codigo del script

#llamamos a comuna solicitando la iformacion de sus establecimientos educacioneales

my $id_comuna_f=param("comuna_$id") || $familia->id_comuna;
my $c = new Comuna($id_comuna_f);
my ($a_rbd, $h_rbd) = $c->establecimientos;
my ($id_comuna, $nombre) = Comuna->todas;

#mostramos los datos en la ficha
print TR(td(),
td({-align=>"right"},"Educación "),
td("Nivel", popup_menu(-name=>"educacion_$id", -values=>\@cursos, -default=>$p->estudios, -labels=>\%cursos),
"Comuna ", popup_menu(-name=>"comuna_$id", -values=>$id_comuna, -labels=>$nombre, -default=>$id_comuna_f,
-onchange=>'this.form.submit()'),
" Establecimiento ", popup_menu(-name=>"educacion_$id", -values=>$a_rbd, -labels=>$h_rbd, -default=>$p->est_educ )
),
);

********** fin de codigo **********************

gracias nuevamente, que seria de muchos de nosotros sin la ayuda de todos los demas que nos ayudan...

*************************************************
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 10:02.