Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/11/2009, 03:25
Avatar de frisca
frisca
 
Fecha de Ingreso: mayo-2004
Ubicación: Murcia
Mensajes: 176
Antigüedad: 20 años, 7 meses
Puntos: 0
No en explorer...

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="+cadenatrue);
        
//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>";
}

?>
__________________
Que si contara el tiempo que paso mirando al techo pensando en ella...