Estoy usando el código que muestro a continuación para hacer que un combo se cargue a partir del valor seleccionado en otro combo. Hace un tiempo funcionaba en ambos navegadores pero luego de "reciclar" varias veces el código y adaptarlo creo que hice algo mal que dejo de funcionar en IE en todas las versiones.
El método general
Código:
function nuevoAjax() { var xmlhttp=false; try { // Creacion del objeto AJAX para navegadores no IE xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { // Creacion del objet AJAX para IE xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch(E) { xmlhttp=false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } return xmlhttp; }
El método especifico
Código:
function Unidad(facultad){ facultad = facultad.value; ajax=nuevoAjax(); ajax.open("GET", "/includes/lineas.ajax.php?action=unidad&facultad="+facultad, true); ajax.onreadystatechange=function() { if (ajax.readyState==4) { document.getElementById("unidad").innerHTML=ajax.responseText; document.getElementById("area").innerHTML=""; document.getElementById("lineas").innerHTML=""; } } ajax.send(null); }
El PHP
Código PHP:
<option value="null">-------</option>
<?
$query = mysql_query("SELECT * FROM unidad_investigacion_luz WHERE facultad='$_GET[facultad]'")
or die("ERROR: ".mysql_error());
while($row = mysql_fetch_array($query)){
?>
<option value="<? echo $row[id_t]; ?>"><? echo htmlentities(limit_string($row[descripcion])); ?></option>
<?
}
?>
Saludos y gracias