2011-12-26 49 views
0

我有一个PHP脚本生成PDF文件(我使用fpdf从www.fpdf.org)。我使用AJAX $ .post(.....)从HTML中调用PHP。点击提交按钮时,跨度显示“请稍候......”。 PDF正在生成,但仍显示“请稍候...”。跨度没有得到更新。下面是AJAX调用的代码:即使成功的AJAX调用jQuery没有更新跨度

$(document).ready(function() 
{ 
$("#genByDt").submit(function() 
{ 
    $("#msg").text('Please wait....').fadeIn(1000); 

    var otherValidations = validate(document.genByDt); 
    if(otherValidations == false) 
    { 
     return false; 
    } 
    else 
    { 

     $.post("/pawn/fpdf/chittiCode/generateChitti.php",{ whichSubmitted:$('input[name = whichSubmitted]').val(), dateSelected:$('input[name = dateSelected]').val() }, function(data){ 

     var obj = $(data);    

     if($.trim($(obj,'body').text()) == 'success') 
     { 
      $("#msg").fadeTo(200,0.1,function(){ 
       $(this).text('Bills generated successfully !!').fadeTo(900,1); 
       $('input[name = dateSelected]').val(''); 
      }); 

     } 
     else if($.trim($(obj,'body').text()) == 'zeroBills') 
     { 
      $("#msg").fadeTo(200,0.1,function(){ 
       $(this).text('No bills for the selected date !!').fadeTo(900,1); 
       $('input[name = dateSelected]').val(''); 
      }); 
     } 

     }); 

     return false; //not to post the form physically 
    } 
}); 

}); 

我知道问题出在IFcondition。 PHP正在返回一个字符串,但是$(data)是object类型的[我通过alert(obj)找到了这个; ]。下面是PHP的一部分:

if($success == 1) 
{ 
echo "success"; 
} 
else 
{ 
echo "zeroBills"; 
} 
+0

@KristerAndersson - Please help man !!!! – Rajesh 2011-12-26 10:52:34

回答

0

如果PHP返回一个字符串,然后data将是一个字符串,应受到同样的对待:

if (data === "success") { 
    // your code here 
} else if (data === "zeroBills") { 
    // your code here 
} 

(你提到你找到的类型obj的说法alert(obj);如果您说alert(data),会发生什么情况?)

0

您对此有何看法?您接受了由PHP脚本生成的字符串,并使用$(data)将其转换为jQuery对象。之后,它不再是一个字符串。第二种:您尝试将元素内容与body下的选择器obj(它根本不是选择器)进行比较,并将其与“成功”相比较,而不将其添加到DOM。

为什么你只是比较数据与“成功”在第一位?

if(data === "success") 
0

你真的需要这个对象吗?为什么不使用字符串?

if(data === 'success') 
{} 
else if(data === 'zeroBills') 
{} 
0

具体是这样的:$.trim($(obj,'body').text()

为什么甚至要指定obj变量为data

尝试:

if(data == 'success') 
0

为什么不使用jQuery的$就功能和你的PHP页面:

回声 '如果成功的任何消息';

header('Error 404:Any error message'); (故意发送错误代码,我不会注意语法)

成功:function(html){$(“#message”)。html(html); }, error:function(x,e,t){$(“#message”)。html(t); } //“t”是'任何错误代码'