Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/03/2012, 15:38
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: AJAX mal funcionamiento en IE

Hola @nitsuga1986

Te dejo un par de observaciones que quizás te ayuden a solucionarlo

Si la idea es hacer selects dependientes, y en tu caso según la provincia elegida crear un select con localidades, primero, esto no está del todo bien
<select name="provincia_combo" onclick="recargarLocalidades, el ebento debería ser onchange, si no, el valor siempre sería "Cualquiera", a menos que hagas un select de tipo multiple, pero eso al menos no lo has hecho.

Un ejemplo quedaría...


Código HTML:
Ver original
  1. <select name="provincia_combo" onchange="recargarLocalidades('localidades.php',this.value,'combo2'); return false;" >
  2.      <option selected value="cualquiera">Cualquiera</option>
  3.      <option value="La Pampa">La Pampa</option>
  4.      <option value="Mendoza">Mendoza</option>
  5.      <option value="Santa Fe">Santa Fe</option>

Vamos con la script ajax


Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3.  
  4. //creas el objeto ajax, lo haces aparte para poder volver a usarlo si hace falta
  5. function ajaxFunction() {
  6.   var xmlHttp;
  7.  
  8.   try {
  9.    
  10.     xmlHttp=new XMLHttpRequest();
  11.     return xmlHttp;
  12.   } catch (e) {
  13.    
  14.     try {
  15.       xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  16.       return xmlHttp;
  17.     } catch (e) {
  18.      
  19.       try {
  20.         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  21.         return xmlHttp;
  22.       } catch (e) {
  23.         alert("Tu navegador no soporta AJAX!");
  24.         return false;
  25.       }}}
  26. }
  27.  
  28. // Ahora creas la función
  29. function recargarLocalidades(_pagina,valor,capa) {
  30.     var ajax;
  31.     ajax = ajaxFunction();
  32.     var urlget = _pagina + '?provincia=' + valor; // definis la url completa con los parámetros
  33.     ajax.open("GET", urlget, true);
  34.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  35.  
  36.     ajax.onreadystatechange = function() {
  37.         if (ajax.readyState==1){
  38. // este es un gif a manera de loader, lo podés obviar
  39.             document.getElementById(capa).innerHTML = "<img src='ajax-loader2.gif' align='center'\/><br \/> Aguarde por favor...";
  40.                  }
  41.         if (ajax.readyState == 4) {
  42.            
  43.                 document.getElementById(capa).innerHTML=ajax.responseText;
  44.              }}
  45.              
  46.     ajax.send(null);
  47. }
  48.  
  49.  
  50. //]]>
  51. </script>
y ahora un php simplificado, localidades.php

Código PHP:
Ver original
  1. <?php
  2. if($_GET['provincia'] == "Santa Fe"){
  3. echo "<select><option>Rosario</option><option>Santa fe</option></select>";
  4. }else{
  5. echo "otra provincia";
  6. }
  7. ?>

Ahora otra cosa, si en el primer fragmento el mySql te funciona bien y te genera la lista de provincias, por que no hacer simplemente lo mismo en localidades.php (lo que vos llamas archivo_ajax_1.php ), no entiendo porque tenes ahi $_GET['localidad']
. Eso se necesitaría de haber un tercer combo, simplemente deberias hacer (porque es una condición necesaria el definir la provincia para poder generar las localidades
haces
Código PHP:
Ver original
  1. if(isset($_GET['provincia'])){
  2. // consulta
  3. // echo select
  4. //while
  5. //echo /select
  6. }else{
  7. echo "error, no se definio provincia";
  8. }

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.