Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2012, 12:33
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
ajax.onreadystatechange=fuction() dentro de otro ajax.onreadystatechange=fuction()

Que tal forer@s

tengo un problemilla y no se como darle solucion, veran, tengo una funcion ajax que valida los campos de un formulario (nombre, correo, fecha, descripcion, captcha) para validar los primeros lo hago del lado del cliente sin problema,

pero para validar el captcha declaro una variable

ajax = ajaxfunction() (funcion hecha previamente)

y pido un archivo php mediante el

ajax.open("GET","ruta/verifica_captcha.php")

y tomo la respuesta devuelta por medio de

ajax.onreadystatechange=function(){
que pregunta si es correcto o no
}

Hasta aqui todo bien, el problema viene si es correcto el captcha y todo lo demas ya que necesito abrir otra

ajax=function()
ajax.open("GET","ruta/insertar_bd.php")

para enviar ahora todos los valores al archivo php que los insertara a la base de datos, tambien tendra que llevar un

ajax.onreadystatechange=function(){
que pregunta si se ingreso todo correcto a la bd y muestre el mensaje de que todo salio bien
}

no me funciona el codigo que tengo y es que no creo que sea correcto meter una funcion dentro de la otra pero no se entonces como se puede resolver esto, aca dejo el esquema del codigo que tengo hasta el momento:

Código PHP:
function procesar_comentario(){
        
    
//recibo variables
    
var nombredocument.getElementById('nombre').value;
    
//las demas variables

    //empiezan validaciones
    
if (nombre==""){
        
alert ("campo obligatorio");
    }
    else{
        
//las demas validaciones    
                
if(){
                }
                else{ 
//aqui llega la validacion del captcha donde hare la peticion al php
                        
var ajax_verify_captcha//declaro la variable
                        
ajax_verify_captchaajaxFunction(); //le asigno la funcion hecha previamente
                       
ajax_verify_captcha.open("GET""ruta/verificar_captcha.php?variable1="+variable1+"&variable2="+variable2true);  //aqui ya pido el archivo y le mando las variables que se van a verificar
                       
ajax_verify_captcha.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
                       
ajax_verify_captcha.onreadystatechange = function() { // funcion que entre otras cosas devuelve la respuesta del php
                      
var resp_verify_captha ajax_verify_captcha.responseText//asigno a una variable la respuesta del php
        
        
if (ajax_verify_captcha.readyState==4){
                       if(
resp_verify_captha=="incorrecto"){ //pregunto si esta mal
                
alert("error captcha"); //mensaje de error
                
Recaptcha.reload(); //que se recargue el captcha
        
}
        else{
            if(
resp_verify_captha=="correcto"){ //aqui viene lo que no se cmo hacer, si el captcha fue correcto
                    
alert('1');                                                                
                           var 
ajax_insert_opinion//declaro otra variable que 
                
ajax_insert_opinionajaxFunction(); //guarda la funcion hecha previamente
                
alert('2');     //hasta aca corre el codigo, los siguientes alert ya no los imprime
                                
ajax_insert_opinion.open("GET""../insertar_bd.php?variables="+variablestrue);
                                
alert('3');
                                
ajax_insert_opinion.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
                                
alert('4');
                                
ajax_insert_opinion.onreadystatechange = function() {
                
alert('5');
                if (
ajax_insert_opinion.readyState == 1){
                  
alert('6');
                                  
document.getElementById('capa_respuesta').style.display='';
                                  
document.getElementById('capa_respuesta').innerHTML"Procesando";
                                  
alert('7');
                                }
                                if (
ajax_insert_opinion.readyState == 4){
                                   
alert('8');
                                   
document.getElementById('capa_respuesta').innerHTMLajax_insert_opinion.responseText;
                                   
alert('9');
                                }
                            }
                            
ajax_insert_opinion.send(null);
                      }
                }
         }
    
ajax_verify_captcha.send(null);

Si alguien sabe como puedo hacer que funcione con esta estructura seria lo mejor, o si alguien propone otro metodo tambien se lo agradecere.

Gracias