成功:ajax中的函数(数据)无法正常工作

时间:2013-05-19 10:32:29

标签: jquery

我对此代码有疑问,当我按submit按钮时如果一切正常InsertDB应该返回“成功”并将其设置为msg变量。但是消息值“没有”......但InsertDB的其他输出正常工作......我的意思是输出不等于“成功”。 问题出在哪儿??

var interval;
function downloadArticle()
{
  var msg="nothing";
  var d = new Date();
  var time = d.getTime();
  var dataRes=$("#form1").serialize();
    if(dataRes!="URL=")
  {
     $.ajax({
        type: "POST",
        url: "InsertDB.php",
        data: dataRes +"&"+ "timeStamp=" + time,
        success: function (data) {
                msg=data;
                if(msg!="success"){
                  $("#resultdialog").text(msg);
                  $( "#resultdialog" ).dialog( "open" );
                  }
                },
            error: function(xhr, ajaxOptions, thrownError) {
            alert(xhr.statusText);
            alert(thrownError);
        }
           });

  }
return msg;
}
function check(){
    var d = new Date();
    var time = d.getTime();
    var dataRes=$("#form1").serialize();
        if(dataRes!="URL=" && msg=="success")
    {
            $.ajax({
            type: "POST",
            url: "Check.php",
            data: dataRes+ "&"+"timeStamp=" + time,
            success: function (data) {
            if(data!="لطفا منتظر بمانید!")
            {
                            window.clearInterval(interval);
            }
            if(data=="لطفا منتظر بمانید!")
            {
                content='<div id="resDiv1" style="width:90%; height:auto; margin-left:5%; margin-right:5%; margin-top:7%; font-size:14pt;" align="center"><strong>لطفا منتظر بمانید!</strong></div>';
                    $("#resultdialog").html("");
                    $("#resultdialog").html(content);
            }
             else
            {
                    content='<div id="resDiv1" style="width:90%; height:auto; margin-left:5%; margin-right:5%; margin-top:5%; font-size:12pt;"><strong>لینک دانلود:</strong></br><div id="download" dir=ltr>'+data+'</div></div>';
                    feedback='<div id="feedback" style="width:100%; height:auto; margin-left:5%; margin-right:5%;" dir=rtl><input type="checkbox" id="feedbackBox" name="feedbackBox" value="1">لینک خراب است!</input><input type="button" id="feedbackButton" name="feedbackButton" value="گزارش"/></div>';
                    $("#resultdialog").text("");
                    $("#resultdialog").html(content+feedback);
            }
            }
             });
        }
        else
            window.clearInterval(interval);

}
function  start(){
 interval=self.setInterval(check,1000);
 }
 $(document).ready(function (){
 $(document).on('click','#submit',function (){
    var dataRes=$("#form1").serialize();
        if(dataRes!="URL=")
                 {
                    var msgdl=downloadArticle();
                    if(msgdl=="success")
                    {
                          start();
                          $( "#resultdialog" ).dialog( "open" );
                }
                  }

 });
 });

这部分代码我认为永远不会执行

                if(msgdl=="success")
                {
                      start();
                      $( "#resultdialog" ).dialog( "open" );
            }

1 个答案:

答案 0 :(得分:0)

  

如果一切正常,InsertDB应返回“success”并将其设置为   msg变量。

这不是我在你的代码中看到的。你在'onSuccess'回调中做了相反的事情:

msg=data;
if(msg!="success"){
   $("#resultdialog").text(msg);
   $( "#resultdialog" ).dialog( "open" );
}

如果邮件不是“成功”,则只打印文本。 也许你想要添加if(msg =="success")代替?