• Publicidad

Actualizar un select simple en PHP con una bd en postgres

Todo lo relacionado con lenguajes de programación distintos de Perl: PHP, Java, C++, Ruby, Python, etc.

Actualizar un select simple en PHP con una bd en postgres

Notapor rookie » 2006-03-30 13:33 @606

Saludos a todos...

Tengo un problema con dos SELECT simples en PHP. Ambos muestran datos obtenidos de tablas en POstgres, el problema viene cuando la segunda lista (select2) debe mostrar los datos de acuerdo al un dato elegido por el usuario en la primer lista (select1). Por ejemplo:
LISTA 1 (select simple 1).
Colores.
Tamaños
Sabores
Si el usuario seleccciona de esta lista la opcion "Tamaños" , entonces la segunda lista (select simple 2) debe actualizarse " automaticamente " (esto es lo importante) se acuerdo al valor elegido en la primer lista. Por ejemplo:
Si elige "tamaños"-> LISTA 2 (selec simple 2). Si elige "sabores" -> LISTA 2
Chico. Dulce
Mediano. Amargo
Grande. Salado
La segunda lista cambiara de manera dinamica de acuerdo a los valores elegidos en la primer lista.

Ojala y puedan ayudarme para poder realizar esto que aqui les comento, ya he hecho la consulta y desplegado la primer lista, pero la segunda lista no se actualiza de acuerdo al valor de la primera.

Gracias.
rookie
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2006-03-01 18:48 @825

Publicidad

Re: Actualizar un select simple en PHP con una bd en postgre

Notapor explorer » 2006-03-30 13:46 @615

Para actualizar la segunda lista debes usar el mismo procedimiento que para la primera...
Yendo de más sencillo a complicado...
Cuando el usuario selecciona un elemento de la primera lista, debe pulsar en un botón que generará una nueva página con las dos listas.
Otra opción es colocar el evento onchange en los select de las listas para capturar los eventos del usuario y responder con una nueva página acorde.
La tercera solución es más moderna... consiste en que la petición del onchange desencadena una petición httpxmlrequest que devuelve el contenido de la nueva lista y una función javascript se encarga de redibujar el control select. Vamos, lo que ahora se llama Ajax.

No sé si era esto lo que estabas buscando...
Puedes darnos más detalles...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor rookie » 2006-03-30 14:33 @648

Saludos Explorer..

Asi es, precisamente asi lo necesito, aunque el problema es que los dos Select se encuentran en la misma página. La primera y segunda opcion que me platicas son parecidas, ambas tienen que recargar toda la página. Ajax se me hace una opcion muy buena , desafortunadamente no se mucho del tema y necesito entregar esta pagina.

El problema se me presenta al "pasar" el valor de la primer lista, para obtener la consulta en la segunda lista, ya que no he podido sacar ese valor del primer select, teniendo a ambos en la misma página.

Lo he intentado con POST pero no me funciona, creo que tendre que realizar 2 paginas para poder obtener ese valor en la segunda, y asi poder realizar mi consulta para mi segundo select simple.

Algun consejo adicional ??

Gracias por la ayuda...Saludos desde Puebla.
rookie
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2006-03-01 18:48 @825

Re: Actualizar un select simple en PHP con una bd en postgre

Notapor explorer » 2006-03-30 15:11 @674

rookie escribiste:El problema se me presenta al "pasar" el valor de la primer lista, para obtener la consulta en la segunda lista, ya que no he podido sacar ese valor del primer select, teniendo a ambos en la misma página.
Lo he intentado con POST pero no me funciona, creo que tendre que realizar 2 paginas para poder obtener ese valor en la segunda, y asi poder realizar mi consulta para mi segundo select simple.
Vamos a ver... si es un select normal, dentro de un form, y tiene un nombre, por narices tienes que poder leerlo cuando el usuario hace un Submit.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor macgregor » 2006-03-31 06:12 @300

la solución la tienes utilizando JavaScript.

cuando creas la pagina web consultas en tu base de datos para saber que opciones poner en los campos tipo select.

Crear el primer campo es facil, y supongo que ya lo tienes :)

Para crear el segundo campo yo generaría varios arrays en JavaScript con el contenido que quieres que aparezca en el select.
Vamos un array para cada opción del primer campo select.
Esta información la obtienes realizando una consulta desde php a la DB por cada valor del primer campo.

De manera que al empezar a generar el HTML tienes toda la información necesaria, puedes hacer todo el código y mostrar el segundo campo select vacio. Lo que quiero decir es que no te hace falta crear más páginas web ni formularios adicionales, lo puedes hacer en una sola página.

Después juega con el evento onChange tal y como te decía Explorer para decidir con que array de los creados rellenas los valores del segundo campo select.

Consulta la siguiente página en la que salen opciones parecidas a la que necesitas.

http://www.mattkruse.com/javascript/selectbox

Solo tienes que amoldarlo a tu caso.

Un saludo.
MACGREGOR [TM]
Avatar de Usuario
macgregor
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2004-12-09 07:32 @355
Ubicación: españa

Notapor rookie » 2006-03-31 14:29 @645

Saludos.

Agradezco su ayuda.
Explorer, si puedo obtener el valor del primer select simple, pero solo cuando cargo la segunda página mediante $_POST, pero no funciona al tener los dos select en la misma pagina.
Macregor, Java es buena opcion, he visto algunos codigos de paginas que emplean lo que yo requiero, y lo hacen con Javascript.

Desafortunadamente como mi Nick lo dice soy un novato, y voy paso a paso, estoy introduciendome a la programacion con PERL y PHP . Asi que tuve que hacer 2 scripst en PHP uno para cada página y en el segundo script recargo todo el codigo del primero y realizo la consulta para recargar el segundo select de acuerdo al valor seleccionado del primero.

Pregunta: AJAX y JAVAscript son al parecer las dos soluciones mas viables para el problema... Cual es la mejor o la más viable?

Saludos. Gracias por la ayuda.
rookie
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2006-03-01 18:48 @825

Re: Actualizar un select simple en PHP con una bd en postgre

Notapor explorer » 2006-03-31 14:54 @662

Pues para aprender casi desde cero, casi mejor Ajax.
En
http://htmldb.oracle.com/pls/otn/f?p=11 ... 4974937282
tienes un ejemplo. Pulsa en Ajax Select para ver la demo y el código.
En la caja de texto puedes escribir un 1 o un 2. Al salir de ahí, el segundo select cambia. Y lo mismo para el primer select.
Abajo está el código. La parte de javascript es realmente poca cosa, pero lo más importante para ti es la parte que reescribe el segundo select.

La diferencia entre Javascript y Ajax es que en el segundo caso no hay redibujado de la página html.

He encontrado una solución sólo Perl, usando Catalyst:
http://www.dev411.com/wiki/AJAX_Select_ ... h_Catalyst

Recapitulemos: tienes que agregar un evento onchange en el primer select que haga una petición a tu cgi, haga el SELECT a la base de datos, y devuelva una página nueva con los dos select. ¡Recuerda que cada select debe tener un name distinto!.

Puedes hacerlo con sólo un php. Sabes que tienes que dibujar sólo el primer select si el php es llamado con un valor de select distinto de cualquiera de sus opciones. Pero si el php es llamado con un valor para el primer select, entonces sabes que el usuario ha hecho una elección, entonces pintas el primero con ese valor como seleccionado y el segundo como resultado del SELECT del primero.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kidd » 2006-03-31 16:11 @716

Hola:

Hace algunos días se habló justamente acerca de eso, una solución para poblar un segundo select dependiendo de la opción elegida en el primero.

La solución es muy sencilla pues ya hay la herramienta que hace eso y la implementación es sumamente intuitiva y fácil de llevar a cabo:

viewtopic.php?t=833


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor rookie » 2006-04-05 14:18 @637

Saludos a todos !

Grande es la ayuda que brindan en este foro .. de verdad !
Interesante lla opcion de AJax.. creo que me echare un clavado para estudiar más a fondo a que se refiere esta técnica e implementarla en posteriores paginas...

Revise la opcion que dice Kidd implementando los select con Javascript y también esta muy buena.

Creanme que tomare muy en cuenta ambas propuestas, y les estare contando como me fue ...principalmente con Ajax..

Gracias y hasta pronto !
Saludos.
rookie
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2006-03-01 18:48 @825

Como tener a Ajax funcionando??

Notapor rookie » 2006-04-06 09:59 @457

Saludos a todos .
Gracias a estos foros me he dado cuenta que para solucionar mis problemas al publicar informacion de manera dinamica en una pagina web tomando datos del servidor, no me basta utilizar PHP. Asi que he leido un poco sobre Ajax y javascript y he decido estudiarlos un poco más a fondo y hacer algunas pruebas.
Pero me surgio un problema básico... y me ahorraría mucho tiempo si me ayudan.
Para realizar algunos scripts ya utilizando Ajax para que vaya y regrese con datos del servidor, tengo que hacer referencia a las librerias Ajax dentro de mi script... estoy en lo correcto??
Ahora, lei alguna documentacion en la que me indica que tengo que descargar y configurar un interprete de funciones para Ajax llamado PEAR?? es cierto esto?? sin PEAR no puedo utilizar las funciones Ajax??

Mil Gracias por sus respuestas.
Saludos y hasta pronto.
rookie
Perlero nuevo
Perlero nuevo
 
Mensajes: 41
Registrado: 2006-03-01 18:48 @825

Siguiente

Volver a Programación en general

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron