PDA

Ver la Versión Completa : ayuda sobre evento en php


jfvoviedo
24-07-2003, 21:15:51
Hola, estoy realizando un formulario en php, y necesito controlar el evento de un elemento lista, para que cada que cambie de valor, tambien lo haga otra lista. Algo asi como si seleccionamos un Estado de un pais, mostrar las ciudades en otra lista de seleccion.

gracias.

__hector
24-07-2003, 23:57:18
Debes tomar en cuenta que php no ejecuta en el cliente, y lo que pretendes controlar es un evento que se produce en el cliente, asi que tendras que auxiliarte un poco (o mucho) en javascript (por decir algo).

Lo puedes hacer de dos formas, ambas tienen un punto comun, y es asignar una rutina al evento onChange del SELECT:

<SELECT NAME="nombre" onChange="haztalcosa()">

En ese onchange, bien puedes recargar la pagina y pasarle un parametro con algun campo que te permita rellenar el otro select:


<onChange="pagina.php?talcosa=1">
....
....
<?
if el request de la variable talcosa entonces
Hago el select de la tabla y relleno el otro select
?>



Puedes tambien manejarlo todo desde el cliente, creando los datos intercambiables entre cada lista al momento de cargar la pagina, y manejarlo con javascript.

Ventajas del primer metodo: pocos datos viajan al cliente, mas carga para el servidor
Del segundo, lo contrario.

kayetano
25-07-2003, 01:20:37
Hola

Como bien dice Hecot con el evento "onchange" del "select" debes cambie el contenido de otro select.

Las opciones que tienes son recargar la pagina, con la consiguiente perdida de tiempo si modificas mucho el valor de la lista "padre".

La segunda opcion es crear una tabla en JavaScript con todos los posibles valores de la lista "hija" y desde javascrit coger los valores que necesites sin tener que recargar.

Aque te dejo un ejemplo
http://www.servibanner.com/contenido/login.php

Cuando cambias de "sector" se recarga el "subsector". Esta un poco liado pero creo que te servra

jfvoviedo
25-07-2003, 02:55:29
gracias por contestar, creo que probare con la opcion de recargar la pagina, ya que los datos los estare tomando de la base de datos.

voy a realizar las pruebas y ya les estare dando lata, ya que apenas estoy comenzando con php.

Saludos.

kayetano
25-07-2003, 16:17:19
Hola

En el ejemplo que te he puesto, los datos se cogen de una base de datos, y genero la tabla desde php.

jfvoviedo
25-07-2003, 23:33:50
gracias kayetano, ya resolvi el problema.

pero ahora tengo otro problema, necesito mostrar los resultados de acuerdo a la letra de inciio de su nombre, es decir poner una barra con todas las letras del abecedario y al realizar unclic sobre alguna de ellas, mostrar estos.

¿como puedo realizar la accion de que al hacer clic sobre dicha letra yo envie una consulta nuevamente?

agradeceria si alguien me puediera ayudar


saludos.

__hector
26-07-2003, 19:24:22
Exactamente igual, pq sigues teniendo los mismos controles, y el evento que se dispara al cambiar de "letra" (opcion) sigue siendo el mismo.

Si lo estas haciendo en el servidor y no con javascript, puedes entonces poner una clausula where al select de la tabla, algo como:

where campo like '$letracapturada%'

Y, si lo estas haciendo desde javascript, recarga la lista buscando que la primera letra de cada elemento coincida con la que ya seleccionaste (mirate el metodo indexof del objeto string)