Ejecute la función Javascript siempre que la condición sea verdadera

Estoy creando una aplicación PhoneGap donde el usuario presiona el botón que luego envía datos al servidor. En el controlador de éxito, tengo una nueva función que le hace algunas preguntas al usuario con un cuadro de aviso y luego las envía de vuelta al servidor. Por lo tanto, debo hacer que aparezca el cuadro de aviso siempre que la condición "estado = ok" sea verdadera.

No sé cuántas veces tiene que aparecer el cuadro de aviso, puede ser de 1 a 10 veces, así que supongo que necesito hacer algún tipo de bucle, pero ¿cómo puedo hacerlo?

Este es el código que he estado usando ahora:

function UpdateRecord(update_id) 
{ var id = getUrlVars()["id"]; 
jQuery.ajax({ type: "POST", 
url: serviceURL + "update.php", 
data: 'id='+id , 
cache: false, 
success: function(data) {
        console.log(data)
        if(data.key[0].status == "ok"){
            var reply = prompt(data.key[0].QUESTION, "");
                    jQuery.ajax({ type: "POST", 
                    url: serviceURL + "question.php", 
                    data: 'id='+id+'&reply='+reply , 
                    cache: false, 
                    success: function(data) {
                        window.location = "page.html" }
             } else {
                  window.location = "page.html" 
             }
}
});
}

preguntado el 04 de julio de 12 a las 06:07

por que borraste la pregunta?? De todos modos, ¿necesita repetir todo el proceso, o solo la parte que llama "question.php"? -

Necesito repetir la parte en el controlador de éxito. Así que todo, desde el if(data.key[0].status == "ok"){ parte -

Lo siento, en la segunda lectura me di cuenta de que tienes que repetirlo todo de todos modos, ya que la única forma de saber si data.key[0].status ha cambiado es enviar una nueva solicitud AJAX. -

1 Respuestas

Creo que lo que buscas es mover la respuesta de la llamada AJAX a un método AskQuestion (O como sea que quieras llamarlo). Esta función le preguntaría si la respuesta era correcta o no y los redirigiría a otra página:

function AskQuestion(data)
{
   var id = getUrlVars()["id"];
   console.log(data);
   if(data.key[0].status == "ok") {
      var reply = prompt(data.key[0].QUESTION, "");
      jQuery.ajax({ type: "POST",
                    url: serviceURL + "question.php",
                    data: 'id='+id+'&reply='+reply,
                    cache: false,
                    success: AskQuestion});
   } else {
      window.location = "page.html";
   }
}

function UpdateRecord(update_id) 
{
   var id = getUrlVars()["id"];
   jQuery.ajax({ type: "POST",
                 url: serviceURL + "update.php",
                 data: 'id='+id,
                 cache: false,
                 success: AskQuestion});
}

Respondido 04 Jul 12, 07:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.