Ver Mensaje Individual
  #9 (permalink)  
Antiguo 11/12/2012, 13:41
art_rockerd
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 6
Respuesta: Aplicacion Web no funciona en IE8 e IE7

Pues que crees, despues de buscar y buscar encontre la solucion, y la comparto por si a alguien le llegase a servir, son tres archivos listos para copy paste para que los prueben, incluyo el script de la base de datos con los inserts :)


Script de base de datos para las pruebas.
Código MySQL:
Ver original
  1. create database ajax_demo
  2.  
  3. firstname varchar(40),
  4. lastname varchar(40),
  5. age int,
  6. hometown varchar(40),
  7. job varchar(40),
  8. );
  9.  
  10. insert into user (firstname,lastname,age,hometown,job) VALUES   ("Peter","Griffin",41,"Quahog","Brewery"),
  11.                                                                 ("Lois","Griffin",40,"Newport","Piano Teacher"),
  12.                                                                 ("Joseph","Swanson",39,"Quahog","Police Officer"),
  13.                                                                 ("Glenn","Quagmire",41,"Quahog","Pilot")

Codigo del HTML
Código HTML:
Ver original
  1. <script type="text/javascript" language="javascript" src="findUser.js"></script>
  2. </head>
  3.  
  4. <select id="financiamiento" onchange="colocaIVA()">
  5.                 <option value="0">Escoge...</option>               
  6.                 <option value="1">1 Pago</option>
  7.                 <option value="12">12 meses</option>
  8.                 <option value="24">24 meses</option>
  9.                 <option value="36">36 meses</option>
  10.             </select></br>
  11. <select name="users" id="user" onchange="showUser()">
  12. <option value="0">Select a person:</option>
  13. <option value="1">Peter Griffin</option>
  14. <option value="2">Lois Griffin</option>
  15. <option value="3">Joseph Swanson</option>
  16. <option value="4">Glenn Quagmire</option>
  17. </form>
  18. <br>
  19. <div id="txtHint"><b>Aqui se mostrara el nombre</b></div>
  20. <div id="txtHint2"><b>Aqui se mostrara el apellido</b></div>
  21. <div id="txtHint3"><b>Aqui se mostrara el r</b></div>
  22.  
  23. </body>
  24. </html>

"findUser.js" Codigo del JS con la COMPATIBILIDAD PARA EL IE6
Código Javascript:
Ver original
  1. //se ejecuta con un onchage del select:option del html,
  2. //puede ser cualquier otro evento de JS: onclick, onblur, etc.....
  3. function showUser()
  4. {
  5. var selObj2 = document.getElementById('financiamiento');
  6. var str2 = selObj2.selectedIndex;
  7. var selObj3 = document.getElementById('user');
  8. var str3 = selObj3.selectedIndex;
  9. //si escogio la primera opcion, le dice que no se encontro datos
  10. //e imprime vacio el div txtHint2
  11. if (str3=="0")
  12.   {
  13.   document.getElementById("txtHint").innerHTML="No se encontro datos";
  14.   document.getElementById("txtHint2").innerHTML="";
  15.   return;
  16.   }
  17.   //Aqui esta el ajax para los distintos navegadores.
  18. if (window.XMLHttpRequest)
  19.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  20.   xmlhttp=new XMLHttpRequest();
  21.   }
  22. else
  23.   {// code for IE6, IE5
  24.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  25.   }
  26.   //Con esta funcion recibimos variables de PHP para pintarlas en pantalla
  27. xmlhttp.onreadystatechange=function()
  28.   {
  29.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  30.     {
  31.     //aqui es donde estamos recibiendo con el responseText, y
  32.     //con el metodo split separamos el echo que recibimos de PHP
  33.     var separar=xmlhttp.responseText.split(",");
  34.         var nombre = separar[0];
  35.         var apellido = separar[1];
  36.         var r = separar[2];
  37.         //aqui estamos pintando en los divs los valores que deseemos
  38.     document.getElementById("txtHint").innerHTML=nombre;
  39.     document.getElementById("txtHint2").innerHTML=apellido;
  40.     document.getElementById("txtHint3").innerHTML=r;
  41.     }
  42.   }
  43.   //Aqui es en donde estamos enviando las variables al arhivo PHP y
  44.   //la variable seleccioada del HTML selected:option
  45. xmlhttp.open("GET","getuser.php?q="+str3+"&r="+str2,true);
  46.  
  47. xmlhttp.send();
  48.  
  49. // :) y eso es todo!!! esta ya esta modificada para parseo de variables
  50. //y para tenerlo todo en archivos separados, .html, .js, .php
  51.  
  52. }

getuser.php CODIGO PHP que hace la conexion y consuta a BDD
Código PHP:
Ver original
  1. <?php
  2. //leemos la variable que nos envia Javascript
  3. $q=$_GET["q"];
  4. $r=$_GET["r"];
  5. //conecatmos ala bdd
  6. $con = mysql_connect('localhost', 'root', '');
  7. if (!$con)
  8.   {
  9.   die('Could not connect: ' . mysql_error());
  10.   }
  11. mysql_select_db("ajax_demo", $con);
  12. //realizamos consulta a BDD
  13. $sql="SELECT * FROM user WHERE id = '$q'";
  14. $result = mysql_query($sql);
  15. //Obtenemos los datos de la consulta y enviamos a JS
  16. while($row = mysql_fetch_array($result))
  17.   {
  18.   $fistname= $row['firstname'] . "</td>";
  19.   $lastname= $row['lastname'] . "</td>";
  20.   $age= $row['age'] . "</td>";
  21.   $hometown= $row['hometown'] . "</td>";
  22.   $job= $row['job'] . "</td>";
  23.   //con este echo se envia las variables separadas por "," o cualquier otro caracter
  24.     echo $fistname.",".$lastname.",".$r;
  25.   }
  26. //termianos conexion a bdd
  27. ?>

Muchas gracias por la ayuda, espero que esto le sirva a alguien mas, ya es cuestion de modificarlo y adaptarlo a sus aplicaciones, listo para copy paste :P