主题:ASP从数据库读取数据到数组,再将数组值传到JavaScript的数组中的问题?
主要是从SQL SERVER2000数据库读取数据,传到客户端浏览器的javascript数组中,由客户端javascript 函数处理。
用ASP从数据库读取数据并赋值给数组,再将数组传到客户端浏览器的javascript数组中,这个过程有错。但我不知道怎么改!!
如果有其他的方法或技巧可以实现相同的过程,请大家不吝赐教!!!欢迎讨论!
小弟先行谢过!!!!!
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google JavaScript API --6</title>
<%On Error Resume Next%>
<%
StrSQL="DBQ="+server.mappath(".mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
StrSQL="driver={SQL Server};server=(local);database=mapdata;uid=sa;pwd=etoward;"
set oConn=server.createobject("ADODB.CONNECTION")
oConn.open StrSQL
%>
<%
var sSQL = 'SELECT * FROM points';
var rs = oConn.Execute(sSQL);
dim point_x = rs("x").GetRows;
dim point_y = rs("y").GetRows;
dim point_html = rs("html").GetRows;
dim point_higher_up = rs("higher_up").GetRows;
dim point_subordinate = rs("subordinate").GetRows;
dim point_name = rs("name").GetRows;
dim point_attribute = rs("attribute").GetRows;
dim point_num = rs.Fields.Count;
Response.Write("<script language=JavaScript >
var point_num; ");
Response.Write("point_num="+point_num+";""alert("+point_num+");");
Response.Write("var point_x = new Array(point_num);
var point_y = new Array(point_num);
var point_html = new Array(point_num);
var point_higher_up = new Array(point_num);
var point_subordinate = new Array(point_num);
var point_name = new Array(point_num);
var point_attribute = new Array(point_num);");
var arrI=0;
for(;arrI < point_num;arrI ++)
{
Response.Write("point_x["+arrI+"]="+point_x[arrI]+";") ;
Response.Write("point_y["+arrI+"]='"+point_y[arrI]+"';");
Response.Write("point_html["+arrI+"]='"+point_html[arrI]+"';");
Response.Write("point_higher_up["+arrI+"]='"+point_higher_up[arrI]+"';");
Response.Write("point_subordinate["+arrI+"]='"+point_subordinate[arrI]+"';");
Response.Write("point_name["+arrI+"]='"+point_name[arrI]+"';");
Response.Write("point_attribute["+arrI+"]='"+point_attribute[arrI]+"';");
};
Response.Write("</script>");
rs.Close();
rs=null;
oConn.Close();
oConn = null;
%>
<script src=
"http://ditu.google.com/maps?file=api&v=2&key=ABQIAAAAmtvEbk3j-VrVahmjWFW5nBST9LztJ4iGtaAcc81CEwKFFQ1
yqhROMdwzcm95FZqdgm0XFv6Na2g7RQ" type="text/javascript">
</script>
<script type="text/javascript">
alert(point_num);
alert(point_x);
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.addControl(new GOverviewMapControl());
map.setCenter(new GLatLng(34.258344, 117.160900), 13);
var baseIcon = new GIcon();
baseIcon.shadow = "./images/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
//
function createMarker(point, i) {
var icon = new GIcon(baseIcon);
icon.image = "./images/1.png";
var marker = new GMarker(point,icon);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowTabsHtml(infoTabs); });
return marker;}
var infoTabs = [
new GInfoWindowTab("名称", "" ),
new GInfoWindowTab("地址", "煤建新村1-4-602"),
new GInfoWindowTab("邮政编码", "221006"),
new GInfoWindowTab("电话", "051-85826086")
];
for (var i = 0; i < point_num; i++) {
var point = new GLatLng(point_x[i],point_y[i]);
map.addOverlay(createMarker(point, i));}
}
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 600px; height: 400px"></div>
</body
></html>