archivo combo.php
Código:
Archivo ajax.php<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd"> <html> <head> <title>Sentido Web - Combo AJAX</title> <script type="text/javascript"> // <![CDATA[ function ajaxobj() { try { _ajaxobj = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { _ajaxobj = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { _ajaxobj = false; } } if (!_ajaxobj && typeof XMLHttpRequest!='undefined') { _ajaxobj = new XMLHttpRequest(); } return _ajaxobj; } function carga(val) { var ajax = ajaxobj(); ajax.open("POST", "ajax.php", true); ajax.onreadystatechange=function() { if (ajax.readyState==4) { var datos = (ajax.responseXML).firstChild; var obj = document.getElementById("combo2"); for (var i=0; i<obj.options.length; i++) { obj.removeChild(obj.firstChild); } for (var i=0; i<datos.childNodes.length; i++) { var elem = datos.childNodes[i].firstChild.data; obj.options[i] = new Option(elem); } } } ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); ajax.send("&val="+val); } // ]] > </script> </head> <body > <p> <?php include("conexion.php"); $link=conectar(); $consulta = "SELECT * FROM ciudad ORDER BY NOM_CIUDAD"; $resultado = mysql_query($consulta,$link); ?> <select name="id_ciudad" id="id_ciudad" onchange="carga(this.value)"> <option value="" selected="selected">Seleccionar</option> <?php while($datos = mysql_fetch_array($resultado)){ ?> <option value="<?php echo $datos["ID_CIUDAD"] ?>"><?php echo $datos["NOM_CIUDAD"] ?></option> <?php } mysql_close($link); ?> </select> <select id="combo2"> <option value="">Vacio</option> </select> </p> </body> </html>
Código:
<?php $val = $_POST["val"]; $id_esta = array(); $nom_esta = array(); include("conexion.php"); $link=conectar(); $consulta = "SELECT * FROM establecimiento WHERE id_ciudad = '$val' ORDER BY id_esta"; $resultado = mysql_query($consulta,$link); $j=0; while($datos = mysql_fetch_array($resultado)){ $id_esta[]=$datos["ID_ESTA"]; $nom_esta[]=$datos["NOM_ESTA"]; $j++; } mysql_close($link); $xml .= '<datos>'; for ($i=0; $i<=$j; $i++){ $xml .= '<valor>'.$nom_esta[$i].'</valor>'; } $xml .= '</datos>'; header('Content-type: text/xml'); echo $xml; /* $xml .= '<datos>'; for ($i=1; $i<=5; $i++) { $xml .= '<valor>'.$val.'</valor>'; } $xml .= '</datos>'; header('Content-type: text/xml'); echo $xml; */ ?>