当前位置:编程学习 > JS >>

JS二维数组这样建为什么出问题了,望高手指点

function readLogDb(firstDay,endDay)//查询当月的所有日志信息
{
   this.logDbs = new Array();  
   this.logDbsIdex = new Array();//记录不同天数数字
   var idx = 0,i = 0,e = 0,zzcDors = 0;
   var conn = new ActiveXObject("ADODB.Connection");
  conn.Open("DBQ="+dbpath +";DRIVER={Microsoft Access Driver (*.mdb)};");
  var rs = new ActiveXObject("ADODB.Recordset");   
   //查询SQL语句
   var sql = "SELECT * FROM daily_adversaria WHERE (daily_adversaria.createTime) > #2009-7-1# AND (daily_adversaria.createTime) < #2009-7-31# ORDER BY daily_adversaria.createTime DESC";
  rs.open(sql,conn);    
  while(!rs.EOF)
  {
      var dys = getMyTimeNow(2,rs("createTime")).split("-"); 
      var dy = getMyTimeNow(null,rs("createTime"));  
      var idt = rs("id");//日志索引
      var til = rs("title");//日志标题
      var cont = rs("content");//日志摘要
     // alert("idx:"+ idx + ";dy:" + dys[2]);     
      if( idx != dys[2])
      {        
        
         this.logDbsIdex[e] = dys[2];//把不同的天数记录下来
     //    alert(this.logDbsIdex);
         this.logDbs["mdy"+dys[2]+""] = new Array();
         this.logDbs["mdy"+dys[2]+""][i] = new Array();
         this.logDbs["mdy"+dys[2]+""][i]["day"] = dys[2];//当前所在日
         this.logDbs["mdy"+dys[2]+""][i]["createTime"] = dy;
         this.logDbs["mdy"+dys[2]+""[i]["id"] = idt;
         this.logDbs["mdy"+dys[2]+""][i]["title"] = til;
         this.logDbs["mdy"+dys[2]+""][i]["content"] = cont;
         e ++;
         i ++ ;
      }else
      {
         var lg = this.logDbs["mdy"+dys[2]+""].length;
         this.logDbs["mdy"+dys[2]+""][lg]["day"] = dys[2];//当前所在日
         this.logDbs["mdy"+dys[2]+""][lg]["createTime"] = dy;
         this.logDbs["mdy"+dys[2]+""][lg]["id"] = idt;
         this.logDbs["mdy"+dys[2]+""][lg]["title"] = til;
         this.logDbs[d"mdy"+dys[2]+""][lg]["content"] = cont;   
         i = 0;//初始化下标
      }

      idx = dys[2]; 
      rs.moveNext;  
  }
  rs.close();
  rs = null;
  conn.close();
  conn = null;     
}

追问:我是在做html+js+ACCSE的存储功能,所以根本就只能使用ActiveXObject了。

不想用服务器麻烦死了,不过还是谢谢你的意见

答案:首先不建议使用ActiveXObject,兼容性不好,而且我看你的代码里没有做其他兼容

建议你还是改用JSP去连接数据库

你这一大段:this.logDbs["mdy"+dys[2]+""] = new Array();
         this.logDbs["mdy"+dys[2]+""][i] = new Array();
         this.logDbs["mdy"+dys[2]+""][i]["day"] = dys[2];//当前所在日
         this.logDbs["mdy"+dys[2]+""][i]["createTime"] = dy;
         this.logDbs["mdy"+dys[2]+""[i]["id"] = idt;
         this.logDbs["mdy"+dys[2]+""][i]["title"] = til;
         this.logDbs["mdy"+dys[2]+""][i]["content"] = cont;

可以改为:

var mdyarr=this.logDbs["mdy"+dys[2]+""][i]=[];

with(mdyarr){

  this.day=dys[2];//当前所在日

  this.createTime=dy;

...

}

上一个:.net(C#) 下cookies 保存多值并由JS读取内容
下一个:js中window.openScoll() 能否可以改变窗体的大小

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,