在做动态网页的时候要链接数据库,而JS又是网页中很好的脚本语言,但为什么总是出错,下面的代码执行后只保存了记录集中的第一条信息,就是说只有slideimages[0]、slidetext[0]、slidelinks[0]有内容,而下标为1、2、3、4的都是没有内容的,但我查询到的记录确实是有5条的,不知道是怎么回事,请高手帮帮忙,谢谢了...
<SCRIPT type="text/javascript">
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("news/xwxt.mdb")set rs=server.createobject("adodb.recordset")
SQLSTR="select top 5 * from xw where newstype='1' order by id DESC"
rs.open SQLSTR,conn,1,1 %>var slideimages=new Array();
var slidetex=new Array();
var slidelinks=new Array();
<%i=0%>
<%do while not rs.eof%>
slideimages[<%=i%>]="<%=rs("imagename")%>"
slidetext[<%=i%>]="<%=rs("title")%>"
slidelinks[<%=i%>]="<%=rs("shijian")%>"
<%i=i+1%>
<%rs.MoveNext%>
<%Loop%>
<%conn.Close
Set RS = Nothing '释放记录集
Set conn = Nothing
%>
</SCRIPT>
还有就是听说JS是在客户端运行的,用JS链接数据库不是很安全,还有什么方法能够使得JS操作数据库信息,是不是可以赋值到网页中,再用JS调用,具体是怎么做的,我这方面还是新手,不是很懂,请大家帮帮忙哈...
<SCRIPT type="text/javascript">
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("news/xwxt.mdb")set rs=server.createobject("adodb.recordset")
SQLSTR="select top 5 * from xw where newstype='1' order by id DESC"
rs.open SQLSTR,conn,1,1 %>var slideimages=new Array();
var slidetex=new Array();
var slidelinks=new Array();
<%i=0%>
<%do while not rs.eof%>
slideimages[<%=i%>]="<%=rs("imagename")%>"
slidetext[<%=i%>]="<%=rs("title")%>"
slidelinks[<%=i%>]="<%=rs("shijian")%>"
<%i=i+1%>
<%rs.MoveNext%>
<%Loop%>
<%conn.Close
Set RS = Nothing '释放记录集
Set conn = Nothing
%>
</SCRIPT>
还有就是听说JS是在客户端运行的,用JS链接数据库不是很安全,还有什么方法能够使得JS操作数据库信息,是不是可以赋值到网页中,再用JS调用,具体是怎么做的,我这方面还是新手,不是很懂,请大家帮帮忙哈...
JS是可以大大增强UI的功能。你上面的代码处于<%...%> 里的是运行在服务器端的,页面处理完后发送到客户端后是看不到的,不过JS的确不适合操作敏感信息。你可以运行你的页面后看下你前台页面的Html源文件。
如果语句没有错,那么应该纪录都是出来的了,只是你的JS有语法错误,都掉了分号,汗改下
<SCRIPT type="text/javascript">
……<%do while not rs.eof%>
slideimages[<%=i%>]="<%=rs("imagename")%>";
slidetext[<%=i%>]="<%=rs("title")%>";
slidelinks[<%=i%>]="<%=rs("shijian")%>";
<%i=i+1%>……
public static Connection getCon(){
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/choice?user=root&password=root";
con=DriverManager.getConnection(url);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public static PreparedStatement prepare(Connection con,String sql){
PreparedStatement ps = null;
try {
ps = con.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}
public static void close(Connection con){
try {
if(con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(Statement stmt){
try {
if(stmt != null) {
stmt.close();
stmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
} public static void close(ResultSet rs){
try {
if(rs != null) {
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static Connection getCon(){
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost/choice?user=root&password=root";
con=DriverManager.getConnection(url);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public static PreparedStatement prepare(Connection con,String sql){
PreparedStatement ps = null;
try {
ps = con.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}
public static void close(Connection con){
try {
if(con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close(Statement stmt){
try {
if(stmt != null) {
stmt.close();
stmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
} public static void close(ResultSet rs){
try {
if(rs != null) {
rs.close();
rs = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}