Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Selects combinados con Ajax y PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Selects combinados con Ajax y PHP

Usando la librería xajax veremos como construir fácilmente un sistema de select combinados con PHP y Ajax.

Un ejemplo típico de las prestaciones de Ajax es la creación de selects combinados, es decir, una estructura de dos selects, donde uno tiene las posibles opciones en función de lo que se haya elegido en el otro. Veremos como hacer este sistema en PHP y Ajax, con la ayuda de la librería xajax, que nos facilitará bastante las cosas.

Para empezar veremos el formulario inicial con el primer select y el segundo sin opciones.

<form name="formulario">
Provincia:
<br>
<select name="provincia" onchange="xajax_generar_select(document.formulario.provincia
.options[document.formulario.provincia.selectedIndex].value)">
<option value="999">Selecciona provincia</option>
<option value=0>Madrid</option>
<option value=1>Valencia</option>
<option value=2>Barcelona</option>
<option value=3>León</option>
</select>
<br>
<br>
Población: <div id="seleccombinado">
<select name="poblaciones">
<option value=0>Elegir provincia</option>
</select>
</div>
</form>

Vemos que se tiene dos campos select, el primero para las provincias y el segundo para las poblaciones. El primer campo tiene todas las opciones posibles. El segundo select inicialmente no tiene ninguna opción, porque estas se deben incluir en función de la provincia escogida en el primer campo. Vemos que el segundo select está metido en una capa con id="selectcombinado", que actualizaremos luego con Ajax.

Además, hay que fijarse en el atributo onchange del primer select, que llama con Ajax, por medio de xajax, a la función PHP que se encargará de generar las opciones del segundo select.

Ahora vamos a ver una función PHP que generaría el código de un select en función de un parámetro que recibirá: la provincia. Con ese identificador de provincia generará el código del select con todas las poblaciones de esa provincia.

function select_combinado($id_provincia){
    //función para crear el select combinado
    //debe extraer las opciones de un select a partir de un parámetro

    //generamos unos arrays con distintas poblaciones de varias provincias
    //estos valores en un caso práctico seguramente se extraerán de base de datos
    //no habría que cargar todos en memoria, sólo hacer el select de las poblaciones de la provincia deseada
    $madrid = array("Madrid", "Las Rozas", "Móstoles", "San Sebastián de los Reyes");
    $valencia = array("Valencia", "La Eliana", "Paterna", "Cullera");
    $barcelona = array("Barcelona", "Badalona");
    $leon = array ("León", "Astorga", "Villamejil");
    $poblaciones = array($madrid, $valencia, $barcelona, $leon);

    //creo las distintas opciones del select
    $nuevo_select = "<select name='poblaciones'>";

    for ($i=0; $i<count($poblaciones[$id_provincia]); $i++){
       $nuevo_select .= '<option value="' . $i . '">' . $poblaciones[$id_provincia][$i] . '</option>';
    }
    $nuevo_select .= "</select>";
    return $nuevo_select;
}



Usuarios que han visto este tema también han visto...

- Tiempo de ejecución de una página con PHP
- Evitar la inyección SQL
- Listado de registros PHP MySQL
- Arreglar error con acentos en Google Coop
- Incluir en PHP un archivo programado en otro lenguaje


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 26-05-2012 a las 05:02:19