Hola.
Estoy creando una aplicación en php con mysql y he metido una función ajax para actualizar un <select> dinámicamente de la base de datos, de manera que cuando un usuario meta un texto en un cuadro de texto el <select> se autocomplete con una consulta en la base de datos.
El problema es que en firefox me funciona perfectamente pero cuando he ido a probarlo en explorer no me funciona.
Os dejo el código a ver si se os ocurre algo, porque yo no lo saco por más vueltas que le doy
index.php Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Consulta Registro con AJAX</title>
<!-- referenciamos al archivo ajax.js donde se encuentra nuestra funcion objetoAjax-->
<script language="JavaScript" type="text/javascript">
function objetoAjax()
{
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function buscar()
{
divResultado = document.getElementById('lista');
ajax=objetoAjax();
cadena = document.consulta.abuscar.value
ajax.open("GET", "consulta.php?busqueda="+cadena, true);
//document.getElementById('lista').style.display='block';
//document.getElementById('lista').size = 2;
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
function selecciona(opt)
{
document.getElementById('abuscar').value = opt;
}
</script>
</head>
<body>
<p>Consultar registros con ajax</p>"</p>"<p><!-- En "onsubmit" escribimos la función 'MostrarConsulta' que creamos en javascript,
con su parametro que es el archivo que vamos a mostrar, en este caso 'consulta.php'-->
<table>
<form name="consulta" action="" onsubmit="MostrarConsulta('consulta.php'); return false">
<tr>
<td><P>Introducir nombre a buscar</td>
<td><INPUT TYPE='TEXT' NAME='abuscar' id='abuscar' onkeyup="buscar(); return false" onfocus='oFoco=this'></P></td>
</tr>
<tr>
<td></td>
<td><p><select name="lista" id="lista" size="6" multiple="multiple" onchange="selecciona(this.options[this.selectedIndex].value); return false">
</select> </p></td>
</tr>
</form>
</table>
</body>
</html>
consulta.php Código PHP:
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","jose","jose")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("probando",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
$link=Conectarse();
$cadena1= $_GET["busqueda"];
/* Carga los elementos del campo nombre en un array */
$query = "SELECT campo FROM prueba WHERE campo LIKE '{$cadena1}%';";
$sql=mysql_query($query,$link) or die("Error en $query <br>MySQL dice: ".mysql_error());
while ($row = mysql_fetch_array($sql)){
echo "<option value='{$row['campo']}'>{$row['campo']}</option>";
}
?>