我有一个生成PDF文件的PHP脚本(我正在使用www.fpdf.org的fpdf)。我使用AJAX $ .post(.....)从html调用PHP。单击提交按钮时,跨度显示“请稍候...”。 PDF已生成但仍然显示“请稍候......”。范围没有得到更新。下面是AJAX调用的代码:
$(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
}
});
});
我知道问题出在IF条件中。 PHP返回一个字符串,但$(数据)是object类型[我通过使用alert(obj)找到了这个; ]。以下是PHP的一部分:
if($success == 1)
{
echo "success";
}
else
{
echo "zeroBills";
}
答案 0 :(得分:0)
如果PHP返回一个字符串,那么data
将是一个字符串,应该这样对待:
if (data === "success") {
// your code here
} else if (data === "zeroBills") {
// your code here
}
(您提到obj
的类型为alert(obj)
;如果您说alert(data)
会怎么样?)
答案 1 :(得分:0)
你期待什么?您获取了PHP脚本生成的字符串,并使用$(data)
将其转换为jQuery对象。之后,它不再是一个字符串。
第二:您试图将obj
下方的元素(body
(根本不是选择器)与“成功”进行比较,而不将其添加到DOM中
为什么不首先将数据与“成功”进行比较?
if(data === "success")
答案 2 :(得分:0)
你真的需要那个作为对象吗?为什么不只是使用字符串?
if(data === 'success')
{}
else if(data === 'zeroBills')
{}
答案 3 :(得分:0)
具体来说就是这样:$.trim($(obj,'body').text()
。
为什么要将obj
变量分配给data
?
尝试:
if(data == 'success')
答案 4 :(得分:0)
为什么不在PHP页面中使用jQuery $ .ajax函数:
回显'任何消息,如果成功';
标题('错误404:任何错误消息'); (故意发送错误代码,我不会重新编写语法)
成功:功能(html){$(" #messo")。html(html); }, 错误:function(x,e,t){$(" #messo")。html(t); } //" t"是'任何错误代码'