2011-12-26 47 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」是'任何錯誤代碼'