divResultado.innerHTML no muestra el contenido en ambos "divs"

252 views
Skip to first unread message

Andres Melguizo

unread,
Apr 2, 2013, 4:24:25 AM4/2/13
to aja...@googlegroups.com
Buenas, 
soy un tanto nuevo en AJAX, y estoy haciendo unas consultas en PHP-MySQL y AJAX. La cuestión esd que quiero que al pulsar botón Submit llame a una fución AJAX y esta abra un código PHP donde muestre los resultados en 2 divs diferentes etiquetados en HTML como "resultado1" y "resultado2". Por más que lo reviso no veo dónde puede estar el problema. Al pulsar "Submit" solo muestra el resultado de la consulta PHP en un div y no en ambos como requiero. Por favor, ¿ me podéis echar una mano ?

Esta es la llamada en HTML:
....
<form name="consulta" action="" onSubmit="MostrarConsulta('consulta.php'); return false">
...
<div id="resultado1"></div>
...
<div id="resultado2"></div>
....

Este es el archivo ajax.js

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 MostrarConsulta(archivo_php){
        
        var dia_inicial =document.forms.consulta.dia[0].value;
        var mes_inicial =document.forms.consulta.mes[0].value;
        var year_inicial =document.forms.consulta.year[0].value;
var dia_final =document.forms.consulta.dia[1].value;
        var mes_final =document.forms.consulta.mes[1].value;
        var year_final =document.forms.consulta.year[1].value;        
        
        ajax=objetoAjax();
               

        ajax.open("GET", archivo_php+"?dia_inicial="+dia_inicial
        +"&mes_inicial="+mes_inicial
        +"&year_inicial="+year_inicial
          +"&dia_final="+dia_final
          +"&mes_final="+mes_final
          +"&year_final="+year_final
          +"&resultado=resultado1"
        ,true); //pasamos variable al archivo
        
        divResultado = document.getElementById('resultado1');
        ajax.onreadystatechange=function() 
        {
        if (ajax.readyState==4)
        divResultado.innerHTML = ajax.responseText;
         
        }
        ajax.send(null);
        
        ajax2=objetoAjax();
        
        
        ajax2.open("GET", archivo_php+"?dia_inicial="+dia_inicial
        +"&mes_inicial="+mes_inicial
        +"&year_inicial="+year_inicial
          +"&dia_final="+dia_final
          +"&mes_final="+mes_final
          +"&year_final="+year_final
          +"&resultado=resultado2"
        ,true); //pasamos variable al archivo
        
        divResultado = document.getElementById('resultado2');
        ajax2.onreadystatechange=function() 
        {
        if (ajax2.readyState==4) 
        divResultado.innerHTML = ajax2.responseText;
}
        ajax2.send(null);
        
}

Isaac Salgado

unread,
Apr 2, 2013, 7:11:12 PM4/2/13
to aja...@googlegroups.com
Hola, crea una nueva función, donde ya recibas los parámetros de consultas o puedes volver a leerlos.
Para este caso se leen nuevamente.


function MostrarConsulta2(archivo_php){
        var dia_inicial =document.forms.consulta.dia[0].value;
        var mes_inicial =document.forms.consulta.mes[0].value;
        var year_inicial =document.forms.consulta.year[0].value;
var dia_final =document.forms.consulta.dia[1].value;
        var mes_final =document.forms.consulta.mes[1].value;
        var year_final =document.forms.consulta.year[1].value;        
        
        ajax2=objetoAjax();

        var divResultado2 = document.getElementById('resultado2');
        ajax2.onreadystatechange=function() 
        {
         if (ajax2.readyState==4)
         divResultado2.innerHTML = ajax2.responseText;
          
        }
        ajax2.send(null);
}



y dentro de tu primera funcion : function MostrarConsulta(archivo_php) 
en el if (ajax2.readyState==4) 

haces esto:
if (ajax2.readyState==4)  {
    //cargas tu primer div
    divResultado.innerHTML = ajax.responseText;
    //mandas a llamar a la función 2 para tu segundo div
    MostrarConsulta2(archivo_php);
}

Seguro es por ahí 

Saludos
Isaac


--
Has recibido este mensaje porque estás suscrito al grupo "Ajax-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a ajax-es+u...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a aja...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/ajax-es?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Reply all
Reply to author
Forward
0 new messages