首页 新闻 会员 周边

为什么ajax接受到的数字0变为“”了?

0
悬赏园豆:5 [已解决问题] 解决于 2016-09-06 11:31

我有个查询,调了个存储过程,最终返回数字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;

<rows>

<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>

 
舒山的主页 舒山 | 菜鸟二级 | 园豆:220
提问于:2016-09-06 10:17
< >
分享
最佳答案
0

1、首先,你这SQL确定是有数据的么?sum操作碰到null就空了,很危险的。

2、F12抓包,看看获取到的是什么内容!

理论上应该是sql查询的问题,中间转换没道理会空的。

收获园豆:5
张朋举 | 小虾三级 |园豆:1915 | 2016-09-06 11:14

嗯,在存储过程中修改一下就可以了:to_char(sum(hf1),'9999999990.99') hf1。

舒山 | 园豆:220 (菜鸟二级) | 2016-09-06 11:30
其他回答(2)
0

上代码吧。

顾晓北 | 园豆:10844 (专家六级) | 2016-09-06 10:25

上了,麻烦看下还有什么要补充的,我新手。。

支持(0) 反对(0) 舒山 | 园豆:220 (菜鸟二级) | 2016-09-06 10:54
success
Type: FunctionAnything data, String textStatus, jqXHR jqXHR )
A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the 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.5the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.
 
 
jquery.ajax的文档是这么说success的方法的,你用调试工具比如fiddler看下返回的东西吧。
支持(0) 反对(0) 顾晓北 | 园豆:10844 (专家六级) | 2016-09-06 10:55

@顾晓北: 谢谢~在存储过程中修改一下就可以了:to_char(sum(hf1),'9999999990.99') hf1。

支持(0) 反对(0) 舒山 | 园豆:220 (菜鸟二级) | 2016-09-06 11:30
0

success:function(xml, textStatus)  这个只是接收你后台代码调用存储过程返回的值,你后台代码最终返回到前台的xml值是什么,你在中途有没有转换或者别的操作。

雨之秋水 | 园豆:649 (小虾三级) | 2016-09-06 10:37

谢谢~

支持(0) 反对(0) 舒山 | 园豆:220 (菜鸟二级) | 2016-09-06 11:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册