Código HTML:
<?php require("13.common.php"); echo '<?xml version="1.0" encoding="UTF-8"?>' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Prueba xajax</title> <?php $xajax->printJavascript(); ?> </head> <body> <form action="13.php" method="post"> <select name="select" id="select" onChange="xajax_actualizaCiudad(this.value)"> <option value="es" selected="selected">Spain</option> <option value="a">Argentina</option> <option value="us">United States</option> <option value="i">Italy</option> </select> <select name="ciudad" id="ciudad"> </select> </form> </body> </html>
Código PHP:
<?php
function encontrarCiudades($pais){
switch($pais){
case "es":
$ciudades = array("Madrid", "Las Rozas", "Móstoles", "San Sebastián de los Reyes");
break;
case "a":
}
$ciudades = array("Santa fe", "Rosario", "Cordoba", "Buenos Aires");
// Retornamos el array
return $ciudades;
}
function actualizaCiudad($pais){
// Buscamos en la base de datos todas las ciudades del pas y las
// ponemos dentro de $ciudades.
$ciudades=encontrarCiudades($pais);
// Creamos la resupesta
$respuesta=new xajaxResponse();
// Por cada ciudad del array,
for($i=0; $i<count($ciudades); $i++){
// Crea una etiqueta option dentro del segundo select,
$respuesta->addCreate("ciudad", "option", "option".$i);
// Le da una value al option con el nombre de la ciudad,
$respuesta->addAssign("option".$i, "value", $ciudades[$i]);
// Y dentro de la etiqueta tambin le pone la ciudad.
$respuesta->addAssign("option".$i, "innerHTML", $ciudades[$i]);
}
return $respuesta->getXML();
}
require("13.common.php");
$xajax->processRequest();
?>
Código PHP:
<?php
require_once("xajax/xajax_core/xajax.inc.php");
$xajax = new xajax("13.server.php");
$xajax->configure('javascript URI','xajax/');
$juego = "iso-8859-1";
$xajax->setCharEncoding($juego);
$xajax->RegisterFunction("actualizaCiudad");
?>