function interestList(){
$.post("ordermanage_interestList",{},function(testDate){
  updatetable(testDate);
}, 'json');

function updatetable(data) {
var json = eval("("+data+")");
var jso = json.list;
alert(json.list[0].customerName);  //(输出了 undefined);
var database = '[';
for ( var i = 0; i < jso.length; i++) {
database += '["<input type=checkbox name=interest value='+jso[i].id+'>","'+jso[i].customerName+'","'+jso[i].cellphoneNumber+'","'+jso[i].backMoney+'","'+jso[i].backDate+'","'+jso[i].bank+'","'+jso[i].account+'","'+jso[i].backTimes+'","'+jso[i].currentBackState+'","'+jso[i].backState+'"]';

if (i != jso.length - 1) {
database += ',';
}
}
database += ']';
          alert(database);    
tableList(database);

}
所有数据都显示 undefined。。

解决方案 »

  1.   

    这种bug的检查方法就是在你的后台把你要传送的json数据打出来,再看看你在js里面取的和打出来的名字是不是一致的,多半是你取的名字不一致,所以显示undefined。我遇到过,当时json是自动把变量名全部统一成了小写,而不是我定义的驼峰式的。good luck!
      

  2.   

    js里面没有list对象的。。你是不是通过json传过来的时候,给这个list一个名字,然后把list直接放进去了??这样估计不行的吧。。
    建议你还是将全部的json打印出来看看是什么样的内容。
      

  3.   

    是代码没给全吗?
    function updatetable(data) 你确定这个data是json的对象格式吗?
    var $j = jQuery.noConflict();
    function queryDownLineByProduct(id){
    var pCode = document.getElementById("pCode"+id).title;
    $j("#pcode").val(pCode);
    $j("#prevUrl").val("");
    $j("#prevUrl").val("queryPLReportByProduct.do?beginTime="+$j("#beginTime").val()+"&endTime="+$j("#endTime").val()+"&agentId="+$j("#agOrMeName").val());
    $j("#product").hide();
     $j.ajax({
            type: "get",
            url: "queryDownLineProdInfo.do",  
            dataType: "json",
    data:"prodCode="+pCode+"&beginTime="+$j("#beginTime").val()+"&endTime="+$j("#endTime").val()+"&agentId="+$j("#agOrMeName").val(),
            contentType: "application/json; charset=utf-8",
            beforeSend:loading,
            cache:false,
            success: function (data) {   
            var shType = data[0]["allAgentList"][0]["type"];
    var resultMarket="";
    resultMarket += '<tr>'
               if($j("#userType").val!=""){
               resultMarket += '<td style="border-left: none;" align="center" colspan="19"><s:text name="downLineAg"/></td>'  
         }else{
         resultMarket += '<td style="border-left: none;" align="center" colspan="19"><s:text name="downLineSh"/></td>'  
         }
      resultMarket += '</tr>'
    resultMarket+=' <tr>';
    if($j("#userType").val!=""){
    resultMarket+='<th rowspan="2"><strong><s:text name="agentId"/></strong></th>';
    }else{
    resultMarket+='<th rowspan="2"><strong><s:text name="shId"/></strong></th>';
    }

    resultMarket+='<th rowspan="2"><strong><s:text name="loginName"/></strong></th>';
    resultMarket+='<th rowspan="2"><strong><s:text name="tradeCount" /></strong></th>';
    resultMarket+='<th rowspan="2"><strong><s:text name="tradeAmount" /></strong></th>';
    //resultMarket+='<th rowspan="2"><strong><s:text name="meValidTradeAmount" /></strong></th>';
    resultMarket+='<th rowspan="2"><strong><s:text name="meOverallPL" /></strong></th>';
    if($j("#userType").val!=""){
    resultMarket+=' <th colspan="5" style="background-color: #DFD1B3"><strong><s:text name="agRevenue"/></strong></th>';
    }else{
    resultMarket+=' <th colspan="5" style="background-color: #DFD1B3"><strong><s:text name="shRevenue"/></strong></th>';
    }
    if($j("#userType").val!=""){
    resultMarket+='<th colspan="5"  style="background-color: #DFD1B3"><strong><s:text name="agToCo"/></strong></th>';
    }else{
    resultMarket+='<th colspan="5"  style="background-color: #DFD1B3"><strong><s:text name="shToCo"/></strong></th>';
    }

    //resultMarket+='<th rowspan="2"><strong><s:text name="pl" /></strong></th>';
    resultMarket+='</tr><tr>';
    resultMarket+='<th><strong><s:text name="shPlEarned" /></strong></th>';
    resultMarket+='<th><strong><s:text name="spreadEarned" /></strong></th>';
    resultMarket+='<th><strong><s:text name="swapEarned" /></strong></th>';
    resultMarket+='<th><strong><s:text name="handleFeeEarned" /></strong></th>';
    resultMarket+='<th><strong><s:text name="shTotalIncomeAmount" /></strong></th>';
    resultMarket+='<th><strong><s:text name="shPlEarned" /></strong></th>';
    resultMarket+='<th><strong><s:text name="spreadEarned" /></strong></th>';
    resultMarket+='<th><strong><s:text name="swapEarned" /></strong></th>';
    resultMarket+='<th><strong><s:text name="handleFeeEarned" /></strong></th>';
    resultMarket+='<th><strong><s:text name="shTotalIncomeAmount" /></strong></th>';
    resultMarket+='</tr>';

                    $j.each(data, function (i, v) {
                    if(v.allAgentList != null && v.allAgentList != ''){
                        
                     $j.each(v.allAgentList,function(key,values){ 
      resultMarket += '<TR>';
      resultMarket += "<td align=\"left\"><a href=\"#\" onclick=\"javascropt:queryDownLineByName('"+values['loginName']+"');\">"+values["loginName"]+"</a>&nbsp;</td>";
      resultMarket += '<td align="left">'+values["name"]+'</TD>';
      resultMarket += '<td align="right">'+values["tradeNum"]+' &nbsp;</td>';
      resultMarket += '<td align="right">'+values["totalMargin"]+' &nbsp;</td>';
      //resultMarket += '<td align="right">'+values["validMargin"]+' &nbsp;</td>';
      resultMarket += '<td align="right">'+values["memberProfit"]+' &nbsp;</td>';
      resultMarket += '<td align="right">'+values["profit"]+'&nbsp;</td>';
      resultMarket += '<td align="right">'+values["spread"]+'&nbsp;</td>';
      resultMarket += ' <td align="right">'+values["swap"]+'&nbsp;</td>';
      resultMarket += ' <td align="right">'+values["handleFee"]+'&nbsp;</td>';
      resultMarket += ' <td align="right">'+values["finalPl"]+'&nbsp;</td>';
      
      resultMarket += '<td align="right">'+values["upProfit"]+'&nbsp;</td>';
      resultMarket += '<td align="right">'+values["upSpread"]+'&nbsp;</td>';
      resultMarket += ' <td align="right">'+values["upSwap"]+'&nbsp;</td>';
      resultMarket += '<td align="right">'+values["upHandleFee"]+'&nbsp;</td>';
      resultMarket += ' <td align="right">'+values["upFinalPl"]+'&nbsp;</td>';
      //resultMarket += ' <td align="right">'+values["plRatio"]+'&nbsp;</td>';
    resultMarket +='</tr>';
                     });
    resultMarket += '<tr>';
    resultMarket += '<td bgcolor="#F3E7CB" colspan="2" align="left"><s:text name="total" /></td>';
    resultMarket += '<td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["tradeNum"]+'&nbsp;</td>';
      resultMarket += '<td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["totalMargin"]+'&nbsp;</td>';
      //resultMarket += '<td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["validMargin"]+'&nbsp;</td>';
      resultMarket += '<td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["memberProfit"]+'&nbsp;</td>';
      resultMarket += '<td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["profit"]+'&nbsp;</td>';
      resultMarket += '<td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["spread"]+'&nbsp;</td>';
      resultMarket += ' <td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["swap"]+'&nbsp;</td>';
      resultMarket += '<td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["handleFee"]+'&nbsp;</td>';
      resultMarket += ' <td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["finalPl"]+'&nbsp;</td>';
      
      resultMarket += ' <td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["upProfit"]+'&nbsp;</td>';
      resultMarket += ' <td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["upSpread"]+'&nbsp;</td>';
      resultMarket += ' <td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["upSwap"]+'&nbsp;</td>';
      //resultMarket += ' <td>'+v.allTotal[i]["spread"]+'&nbsp;</td>';
      resultMarket += ' <td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["upHandleFee"]+'&nbsp;</td>';
      resultMarket += ' <td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["upFinalPl"]+'&nbsp;</td>';
      //resultMarket += ' <td bgcolor="#F3E7CB" align="right">'+v.allTotal[i]["plRatio"]+'&nbsp;</td>';
      resultMarket += '</tr>'
                    }
      $j("#result").html(resultMarket); 

                    })
     

            }
    });
     function loading(){
    $j('#result').html('<td colspan="9" class="table01" width="7%" align="center" bgcolor="#ffffff">正在加载数据,请稍等片刻...</td>');

    }
      

  4.   

    list js不认识,当然变成了undefined了。楼主可以先把list转换成数组。
      

  5.   

    list js不认识,当然变成了undefined了。楼主可以先把list转换成数组。顶这个
      

  6.   

    你看你返回的数据格式再调用js中方法或函数,用ie或者火狐看
      

  7.   

    只查一张表里的数据就可以显示出来,同时查询就2张表时,,,所以值见过 "json.list[i]. "后都变成了undefined
    data是json的对象格式。
    alert(data);时,里面都还有值的。
      

  8.   

    我觉得var json = eval("("+data+")");
    应该是你这个地方 定义的json后面的参数没传过来