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;	 */
?>
 
