我有个查询,调了个存储过程,最终返回数字0,但是页面上显示为空,发现在ajax请求的xml的返回中即为空,请问怎么把它变回原来的样子呢?
1 function btnFindClick(pay_type,payMonth,cashmode) 2 { 3 //收费方式,包括:普通缴费 :normal;立即结算:real ; 多合同号缴费 :multi ;退费:back;大客户缴费:group 4 $("#ghInfo").data("cashmode",cashmode); 5 //控制头部多合同号显示区域的隐藏和显示 6 multiHtsPandShow(cashmode); 7 //根据当前缴费方式,限制某一种或几种缴费方式不可用 8 //showPayType(cashmode); 9 10 var dhNum = $.trim($("#ghSearchBox").val()); 11 12 var DKHFlag ="N";//缴费标识:N:普通缴费 Y:大客户缴费 M:多合同号缴费 13 if( cashmode=='multi' ){ 14 dhNum = $("#ghInfo").data("hthlist"); 15 DKHFlag="M"; 16 }else if (cashmode == 'multiOne'){ 17 dhNum = $("#multihthsel").val(); 18 DKHFlag="MQ"; 19 } 20 21 //是否为大客户缴费 22 if("groupcustomer" == pay_type){ 23 dhNum = $("#ghInfo").data("hthlist"); 24 DKHFlag="Y"; 25 } 26 27 if( dhNum=='') 28 { 29 //清空上次查询内容 30 ghClearInfo(); 31 alert("请输入查询电话"); 32 $("#ghSearchBox").select().focus(); 33 return false; 34 } 35 //立即结账 36 var paymentPrompt ="1、"+ $("#paymentPrompt1").val() +"<%--\n2、"+ $("#paymentPrompt2").val()+"--%>\n2、立即结账完成后,请立即拆机。<%-- \n4、立即结账后交费金额是您(当前收费月代收宽带费+当月话费)。\n5、立即结算后,用户将转成预付用户,请确认后在操作。--%>"; 37 if( payMonth=='payment' ){ 38 if(!confirm(paymentPrompt)){ 39 return false ; 40 } 41 $("#ghFFFs").attr("disabled","disabled"); 42 }else{ 43 $("#ghFFFs").removeAttr("disabled"); 44 } 45 46 //加载信息提示框 chenliang 2012-01-08 47 autoBlockForm('submitloading',30,'submitloadingclose',"#FFFFFF",false); 48 ghClearInfoWithoutSearchBox(); 49 //var payMonth = $('#ghPayMonth').val() == undefined ? '' : $('#ghPayMonth').val(); 50 payMonth = payMonth == undefined ? '':payMonth; 51 var array=[]; 52 array=dhNum.split(','); 53 54 var strdhNum=""; 55 for(var i=0;i<array.length;i++){ 56 var reshth = fetchSingleValue("dbsql_phone.querytabledate",6,"&cloum=count(1)&tablename=hthdang&key=hth='"+array[i]+"'"); 57 if(reshth==0){ 58 var resyhdang = fetchSingleValue("dbsql_phone.querytabledate",6,"&cloum=hth&tablename=yhdang&key=dh='"+array[i]+"' and rownum<=1"); 59 if(resyhdang!=undefined&&resyhdang!=""){ 60 strdhNum=resyhdang.toString()+","+strdhNum.toString(); 61 } 62 }else{ 63 strdhNum=array[i].toString()+","+strdhNum.toString(); 64 } 65 } 66 67 strdhNum=strdhNum.substring(0,strdhNum.length-1); 68 69 //如果输入无效电话直接退出返回 20151223 add by zxy 70 if (strdhNum == '') { 71 $("#ghSearchBox").select().focus(); 72 $("#submitloadingclose").click(); 73 alert("无效的电话号码"); 74 return false; 75 } 76 77 78 var params = "&dh="+strdhNum+"&Sj_SfMonth="+payMonth; 79 params += "&sSkfs="+encodeURIComponent($("#ghFFFs").val())+"&Kemu=" + encodeURIComponent(revenuetype); 80 params += "&DKHFlag=" +DKHFlag ; 81 $.ajax({ 82 url:"charge_phone?func=find" + params, 83 async:true,//异步 84 cache:false, 85 timeout:60000,//1000表示1秒 86 type:'post', 87 success:function(xml, textStatus) 88 { 89 //session过期处理 90 if (typeof(xml)=="string") 91 { 92 if (xml == "session invalid") 93 { 94 location.href="login.jsp"; 95 return false; 96 } 97 } 98 //过程执行结果 99 var res = $("row:first",xml).attr("res"); 100 if (res == "FAILED") 101 { 102 //过程执行失败,提示过程返回的失败原因 103 alert($("row:first",xml).attr("tag")); 104 $("#ghSearchBox").select().focus(); 105 $("#submitloadingclose").click(); 106 return false; 107 } 108 //缓存合并打印发票数据 根据发票要求从表hfys_hthhf_out里取出的一条数据 109 $("#ghInfo").data("payitem_data", xml); 110 //解析数据 生成发票 111 phoneInfo(pay_type); 112 //保存按钮可用 113 $("#ghsave").removeAttr("disabled"); 114 //2012-11-21 yhy 未收费打印票据 115 $("#ghUnpaymentPrint").removeAttr("disabled"); 116 if(pay_type!="groupcustomer"){ 117 //用户信息和退费按钮可用 118 $("#ghUserInfo").removeAttr("disabled"); 119 if($("#tfbuttenright").val()=="true"){ 120 $("#ghTuiFeiBtn").removeAttr("disabled"); 121 }else{ 122 $("#ghTuiFeiBtn").attr("disabled","disabled"); 123 } 124 } 125 //获取用户应缴费成功后执行的一些操作 126 afterfind(xml,cashmode); 127 //是否可少收,sffs:0:不能少收和多收,1:不能少收 可以多收,2:可以少收 可以多收 128 $("row:first",xml).attr('sffs') == '2' ?$('#lessFeeBtn').show():$('#lessFeeBtn').hide(); 129 $('#ghPayMonth').val(''); 130 $('#addfreefee').val(''); 131 $('#feepaytypelist').html(''); 132 133 /* 134 * 目前不允许修改实收费用的地方有 少收、立即结算、多合同号缴费 135 * payMonth == '' ? $('#ghSs').removeAttr('disabled'):$('#ghSs').attr('disabled','disabled'); 136 */ 137 //$('#ghSs').removeAttr('disabled'); 138 $('#submitloadingclose').click(); 139 }, 140 error:function(XMLHttpRequest, textStatus, errorThrown) 141 { 142 alert("Error:"+textStatus); 143 $("#ghSearchBox").select().focus(); 144 $("#submitloadingclose").click(); 145 } 146 }); 147 }
1 OPEN cv_1 FOR 2 SELECT 'SUCCEED' res/*成功标识*/, 3 v_nTemp1 Yjf, 4 v_nTemp2 yhye, 5 v_nTemp3 Sffs, 6 v_sTemptip tip,/*计算应缴费结果*/ 7 v_nQfys qfys, 8 v_kdend kdend, 9 v_state state, 10 v_deldate deldate, 11 /*票据内容,根据不同的项目把所有票据用到的数据都以最终结果返回*/ 12 v_syhmc yhmc, 13 v_sxyjf out_bz13, 14 v_sDh dh,v_sHth hth, 15 v_callpaytype sflxto, 16 v_hfyf hzyf, 17 v_hfzq out_bz2, 18 skrid,sum(dhsl) dhsl, 19 /*市话*/nvl(to_char(sum(hf1)),0.00) hf1,/*国内长途*/sum(hf2) hf2, 20 /*国际长途*/sum(hf3) hf3,/*本地网*/sum(hf4) hf4, 21 /*联通IP*/sum(hf5) hf5,/*上网费*/sum(hf6) hf6, 22 /*内话*/sum(hf7) hf7,/*特免号码*/sum(hf8) hf8, 23 /*数据费*/sum(hf9) hf9,/*联通手机*/sum(hf10) hf10, 24 /*移动手机*/sum(hf11) hf11,/*移动IP*/sum(hf12) hf12, 25 /*电信IP*/sum(hf13) hf13,/*减免sum(hf14) hf14,*/ 26 /*信息sum(hf15) hf15,*/ /*电信手机*/sum(hf16) hf16, 27 /*转入信息*/sum(hf17) hf17,/*电信11808*/sum(hf18) hf18, 28 /*月租费*/sum(zfs1) zfs1,/*新业务费*/sum(zfs2) zfs2, 29 /*宽带费*/sum(zfs3) zfs3, 30 /*上期余额*/sum(syye_ysk) sqye,/*本期余额*/decode(sum(byye_ysk),0,-1*sum(bcyjsum),sum(byye_ysk)) bqye, 31 /*本期话费*/sum(btheji) bqhf,/*当前月费用*/sum(to_number(out_bz9)) out_bz9, 32 /*当前月*/to_number(to_char(sysdate,'mm')) curmonth, 33 /*最后一次正常缴费*/v_lastpay lastpay,/*未打印月数*/v_nprepay prepay, 34 v_sdsts dsts,/*流水号*/max(out_bz4) out_bz4,v_paytype paytype 35 FROM hfys_hthhf_out WHERE skrid=v_m_sSkrID AND hth LIKE v_sHth||'%' GROUP BY skrid,hth;
<row res="SUCCEED" yjf="-4" yhye="-706.37" sffs="1" tip="" qfys="" kdend="" state="正常使用" deldate="" yhmc="北京阳光天创石油设备有限公司" out_bz13="" dh="63599421" hth="FH0859421" sflxto="undefined" hzyf="201606" out_bz2="2016年06月-2016年06月" skrid="admin" dhsl="7" hf1="" hf2="38.06" hf3="" hf4="21" hf5="104" hf6="" hf7="" hf8="" hf9="" hf10="" hf11="" hf12="" hf13="" hf16="" hf17="" hf18="" zfs1="245" zfs2="" zfs3="" sqye="" bqye="4" bqhf="408.06" out_bz9="245" curmonth="9" lastpay="工号:admin, 时间:2016-09-05 17:25:26, 付费方式:现金, 金额:3" prepay="" dsts="" out_bz4="admin-201609-00013" paytype="预付费" />
</rows>
1、首先,你这SQL确定是有数据的么?sum操作碰到null就空了,很危险的。
2、F12抓包,看看获取到的是什么内容!
理论上应该是sql查询的问题,中间转换没道理会空的。
嗯,在存储过程中修改一下就可以了:to_char(sum(hf1),'9999999990.99') hf1。
上代码吧。
上了,麻烦看下还有什么要补充的,我新手。。
dataType
parameter or the dataFilter
callback function, if specified; a string describing the status; and the jqXHR
(in jQuery 1.4.x, XMLHttpRequest) object. As of jQuery 1.5, the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.@顾晓北: 谢谢~在存储过程中修改一下就可以了:to_char(sum(hf1),'9999999990.99') hf1。
success:function(xml, textStatus) 这个只是接收你后台代码调用存储过程返回的值,你后台代码最终返回到前台的xml值是什么,你在中途有没有转换或者别的操作。
谢谢~