【问题标题】:Run Javascript function as long as condition is true只要条件为真就运行Javascript函数
【发布时间】:2012-07-04 05:46:29
【问题描述】:

我正在构建一个 PhoneGap 应用程序,用户按下按钮,然后将数据发送到服务器。在成功处理程序上,我有一个新功能,它通过提示框向用户询问一些问题,然后将它们发送回服务器。所以我需要让提示框出现,只要条件“status=ok”为真。

我不知道提示框要出现多少次,可以是1到10次,所以我想我需要做一个循环,但我该怎么做呢?

这是我现在一直在使用的代码:

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" 
             }
}
});
}

【问题讨论】:

  • 你为什么要删除问题??无论如何,您需要重复整个过程,还是只是调用“question.php”的部分?
  • 我需要在成功处理程序中重复该部分。所以来自if(data.key[0].status == "ok"){ 部分的所有内容
  • 抱歉,在第二次阅读时,我意识到无论如何您都必须重复整个过程,因为您知道data.key[0].status 是否已更改的唯一方法是发送新的 AJAX 请求。

标签: javascript loops while-loop


【解决方案1】:

我认为您的目标是将 AJAX 调用的响应转移到方法 AskQuestion(或任何您想调用的方法)中。该函数会提示并查询答案是否正确,并将其重定向到另一个页面:

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});
}

【讨论】:

    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多