js可以操作数据库吗?(asp 抽奖 数据库 实例)
上次做一个asp页面的时候,网友告诉我js不能操作数据库后来又听人说js也可以操作数据库
刚好我这次给科室做一个摇奖的页面
百度一下找了一个半现成的
不过全是js
没涉及到数据库查询
后来我们领导看了说太简单了
要求:1要分段显示,也就是第一个是一等奖,接下来几个是二等奖,后面几个是三等奖,最后几个是三等奖...(这个功能基本上实现了)
2不单要显示抽奖号码,而且要根据抽奖号码显示其对应的人名,联系方式...也就是要查询数据库啦(数据库已有),vbscirpt查询数据库我用过,js怎么查询数据库,一样吗?如果不行,要怎么处理,js中调用vbscirpt???
[ 本帖最后由 2002070344 于 2007-5-21 00:03 编辑 ] 原来代码为
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" C>
<META NAME="Author" C>
<META NAME="Keywords" C>
<META NAME="Description" C>
<style>
* {
font-size:10.2pt;
font-family:verdana;
}
</style>
</HEAD>
<BODY>
<table width="80%" border="0" cellpadding="20" cellspacing="0" align="center">
<tr>
<td align="center" valign="middle"><button id='cmd_execute'>start roll award</button></td>
</tr>
<tr>
<td align="center" valign="middle"><div id='randmizenum' style='width:100px;border:2px solid blue;font-size:20px;'></div></td>
</tr>
<tr>
<td align="center" valign="middle"><div id='awardnumber'></div></td>
</tr>
<tr>
<td align="center" valign="middle" align='center'>Power By Bluedestiny</td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
<!--
function $(obj) {return document.getElementById(obj);}
function rollaward() {var awardnum};
rollaward.prototype.total=1000;
rollaward.prototype.rollspeed=10;
rollaward.prototype.count=0;
rollaward.prototype.awardArray=new Array();
rollaward.initialize=function() {
for(var i=0;i<rollaward.prototype.total;i++)
rollaward.prototype.awardArray=i+1;
$('randmizenum').innerHTML+='00000';
}
rollaward.start=function() {
if(rollaward.prototype.total==0)
{
alert('has finished');
clearInterval(interval);
return;
}
rollaward.awardnum=parseInt(Math.random()*(rollaward.prototype.total));
$('randmizenum').innerHTML=rollaward.prototype.awardArray;
$('cmd_execute').value='stop roll award';
}
rollaward.stop=function() {
clearInterval(interval);
rollaward.prototype.count++;
$('awardnumber').innerHTML+='第 ' + rollaward.prototype.count + ' 位中奖者:' +rollaward.prototype.awardArray+'<br/>';
$('cmd_execute').value='start roll award';
for(var i=rollaward.awardnum;i<rollaward.prototype.total;i++)
rollaward.prototype.awardArray=rollaward.prototype.awardArray;
rollaward.prototype.total--;
rollaward.prototype.awardArray.length--;
}
function _click(){event.srcElement.value=='start roll award'?interval=setInterval(rollaward.start,rollaward.prototype.rollspeed):rollaward.stop();}
rollaward.initialize();
$('cmd_execute').attachEvent('onclick',_click);
//-->
</SCRIPT>
</BODY>
</HTML>
我主要修改了rollaward.stop函数
修改后为:
<%@language="VBSCRIPT" CODEPAGE="936"%>
<HTML>
<HEAD>
<TITLE>6.5环境日有奖征答摇奖仪式</TITLE>
<META NAME="Generator" C>
<META NAME="Author" C>
<META NAME="Keywords" C>
<META NAME="Description" C>
<style>
* {
font-size:10.2pt;
font-family:verdana;
}
.STYLE1 {
font-size: large;
font-weight: bold;
}
</style>
</HEAD>
<BODY><table width="100%" border="0">
<tr>
<td height="80"><div align="center" class="STYLE1">6.5环境日有奖征答摇奖仪式</div></td>
</tr>
</table>
<table width="80%" border="0" cellpadding="20" cellspacing="0" align="center">
<tr>
<td align="center" valign="middle"><button id='cmd_execute'>开始摇奖</button></td>
</tr>
<tr>
<td align="center" valign="middle"><div id='randmizenum' style='width:100px;border:2px solid blue;font-size:20px;'></div></td>
</tr>
<tr>
<td align="center" valign="middle"><div id='awardnumber'></div></td>
</tr>
<tr>
<td align="center" valign="middle" align='center'>edited By 惠州环境信息中心</td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
<!--
function $(obj) {return document.getElementById(obj);}
function rollaward() {var awardnum};
rollaward.prototype.total=100;
rollaward.prototype.rollspeed=10;
rollaward.prototype.count=0;
rollaward.prototype.awardArray=new Array();
rollaward.initialize=function() {
for(var i=0;i<rollaward.prototype.total;i++)
rollaward.prototype.awardArray=i+1;
$('randmizenum').innerHTML+='00000';
}
rollaward.start=function() {
if(rollaward.prototype.total==0)
{
alert('has finished');
clearInterval(interval);
return;
}
rollaward.awardnum=parseInt(Math.random()*(rollaward.prototype.total));
$('randmizenum').innerHTML=rollaward.prototype.awardArray;
$('cmd_execute').value='停止摇奖';
}
function _click(){event.srcElement.value=='开始摇奖'?interval=setInterval(rollaward.start,rollaward.prototype.rollspeed):rollaward.stop();}
rollaward.initialize();
$('cmd_execute').attachEvent('onclick',_click);
//-->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
rollaward.stop=function()
{
clearInterval(interval);
rollaward.prototype.count++;
if(rollaward.prototype.count<2)
$('awardnumber').innerHTML+='一等奖幸运号:' +rollaward.prototype.awardArray+'<br/>';
else
if(rollaward.prototype.count<5)
$('awardnumber').innerHTML+='二等奖幸运号:' +rollaward.prototype.awardArray+'<br/>';
else
if(rollaward.prototype.count<7)
$('awardnumber').innerHTML+='三等奖幸运号:' +rollaward.prototype.awardArray+'<br/>';
else
if(rollaward.prototype.count>=7)
alert('抽奖已顺利完成!')
$('cmd_execute').value='开始摇奖';
for(var i=rollaward.awardnum;i<rollaward.prototype.total;i++)
rollaward.prototype.awardArray=rollaward.prototype.awardArray;
rollaward.prototype.total--;
rollaward.prototype.awardArray.length--;
}
</SCRIPT>
</BODY>
</HTML>
不知道这样写合适不,不过测试还是满足要求1的
[ 本帖最后由 2002070344 于 2007-5-15 01:32 编辑 ] 继续百度看看有没解决方法
知道的同学,麻烦提个醒,指点一下 你所说的 VBScript 访问数据库应该是runat=server 的吧
好像这是在ASP里用的
据我所知,js不能访问数据库的
PS:发的帖里如有代码,最好禁了Discuz!代码 以免有 时出现斜体
JS可以和服务器交互,具体可以搜下 AJAX
不用动态语言直接和数据库联系,还真没见过..
PS:发的帖里如有代码,最好禁了Discuz!代码 以免有 时出现斜体 刚刚搜了下 JS访问数据
貌似访问的是本地的数据库,而不是服务器的数据库 应该算本地数据库吧
我把数据库拷到该asp同个目录下 网上抄了段js查询数据库的,凑在一起有点不伦不类的
运行也失败
明天上班有空再看看
function WriteDB()
{
var i = 0;
var con = new ActiveXObject("ADODB.Connection");
var sql = "insert into board (bname, standard, diffcount) values ('dd', 0, 0)";
con.Provider = "Microsoft.Jet.OLEDB.4.0";
con.ConnectionString = "Data Source=E:\\DB\\VITest.mdb";
con.open();
var rs = new ActiveXObject("ADODB.Recordset");
rs.open(sql, con); //这块代码有问题,本应rs.close();rs = null;可是添加上报错
//rs.close();
//rs = null;
con.close();
con = null;
}
JS是Javascript和JScript的简称。
JScript是微软把Javascript变种后而得的,所以Jscript可以等同VBScript来看。即:JScript 是微软开发的服务器端语言,可用做ASP开发。
至于操作数据库,不论VBS还是JS,写在服务器端的就可以操作,写在客户端的当然就不能去操作服务器的数据库啦。
重点问题是:客户端OR服务器端?
PS:百度相关资料时用关键字:JScript ASP
[ 本帖最后由 try 于 2007-5-15 12:08 编辑 ] 原帖由 iptton 于 2007-5-15 01:46 发表
function WriteDB()
{
var i = 0;
var con = new ActiveXObject("ADODB.Connection");
var sql = "insert into board (bname, standard, diffcount) values ('dd', 0, 0)";
con ...
这块代码测试过可用吗
想试试,睡不着 我把js连接数据库代码写成函数
<SCRIPT LANGUAGE="JavaScript" runat="server">
function database()
{
//用 JavaScript 写服务器端连接数据库的代码示例
var conn = new ActiveXObject("ADODB.Connection");
conn.Open("DBQ=c:\\xcdb.mdb;DRIVER={Microsoft Access Driver (*.mdb)};");
var m=rollaward.prototype.awardArray//中奖号码
var sql="select * from dbxcy where d_id="&m;
var rs = new ActiveXObject("ADODB.Recordset");
rs.open(sql, conn);
rs.close();
rs = null;
conn.close();
conn = null;
}
</SCRIPT>
然后在<SCRIPT LANGUAGE="JavaScript">
rollaward.stop=function()
{
clearInterval(interval);
rollaward.prototype.count++;
database();
if(rollaward.prototype.count<2)
$('awardnumber').innerHTML+='一等奖幸运号:' +rollaward.prototype.awardArray+'<br/>';
else
if(rollaward.prototype.count<5)
$('awardnumber').innerHTML+='二等奖幸运号:' +rollaward.prototype.awardArray+'<br/>';
else
if(rollaward.prototype.count<7)
$('awardnumber').innerHTML+='三等奖幸运号:' +rollaward.prototype.awardArray+'<br/>';
else
if(rollaward.prototype.count>=7)
alert('抽奖已顺利完成!')
$('cmd_execute').value='开始摇奖';
for(var i=rollaward.awardnum;i<rollaward.prototype.total;i++)
rollaward.prototype.awardArray=rollaward.prototype.awardArray;
rollaward.prototype.total--;
rollaward.prototype.awardArray.length--;
}
中插入调用查询数据库函数database(); ,搞到stop函数都有问题 想问下,js里面换vbs查询数据库行吗 按道理可以,我自己答自己 似乎成功了,明早早弄下,迟点汇报工作 js的变量怎么传给vbs??
<SCRIPT LANGUAGE="JavaScript">
rollaward.stop=function()
{
clearInterval(interval);
rollaward.prototype.count++;
n=8;
<%
m=n
on error resume next
connstr="DBQ="+server.mappath("xcdb.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select * from dbxcy where d_id="&m
rs.open sql,conn,1,1
%>
if(rollaward.prototype.count<2)
$('awardnumber').innerHTML+='一等奖幸运号:' +rollaward.prototype.awardArray+' <%=rs("d_xm")%> ' +'<br/>';
else
if(rollaward.prototype.count<5)
$('awardnumber').innerHTML+='二等奖幸运号:' +rollaward.prototype.awardArray+'<br/>';
else
if(rollaward.prototype.count<7)
$('awardnumber').innerHTML+='三等奖幸运号:' +rollaward.prototype.awardArray+'<br/>';
else
if(rollaward.prototype.count>=7)
alert('抽奖已顺利完成!')
$('cmd_execute').value='开始摇奖';
for(var i=rollaward.awardnum;i<rollaward.prototype.total;i++)
rollaward.prototype.awardArray=rollaward.prototype.awardArray;
rollaward.prototype.total--;
rollaward.prototype.awardArray.length--;
}
</SCRIPT>
n传不到给m
[ 本帖最后由 2002070344 于 2007-5-17 12:51 编辑 ] javascript是可以与jsp互访的。
其它的maybe也可以 传不了,网上找着解决方法 谢谢各位,在各位指点下已经完成了
我用vbs读出数据
然后放到一个数组中,随机抽取
说起来很简单,花了我很大力气
不知道数据大了,会不会影响运行就是了
谢谢
<%@language="VBSCRIPT" CODEPAGE="936"%>
<HTML>
<HEAD>
<TITLE>6.5环境日有奖征答摇奖仪式</TITLE>
<META NAME="Generator" C>
<META NAME="Author" C>
<META NAME="Keywords" C>
<META NAME="Description" C>
<style>
* {
font-size:10.2pt;
font-family:verdana;
}
.STYLE1 {
font-size: large;
font-weight: bold;
}
</style>
</HEAD>
<BODY>
<%
dim conn ,connstr
sub openConn()
set conn=server.CreateObject("ADODB.CONNECTION")
connstr = "DBQ="+ Server.MapPath("xcdb.mdb")+"; Defaultdir=; driver={microsoft access driver (*.mdb)};"
conn.Open(connstr)
end sub
sub closeConn()
conn.Close
set conn=nothing
end sub
dim sql,rs,strList
call openconn()
Sql = "select * from dbxcy"
set rs=conn.execute(sql)
if not rs.eof then
do while not rs.eof
strList = strList&","&"姓名:"&rs("d_xm")&" 单位:"&rs("d_gzdw")&" 电话:"&rs("d_lxfs")
rs.movenext()
loop
end if
call closeconn()
set rs=nothing
strList =mid(strList,2,len(strList)-1)
%>
<table width="100%" border="0">
<tr>
<td height="80"><div align="center" class="STYLE1">6.5环境日有奖征答摇奖仪式</div></td>
</tr>
</table>
<table width="80%" border="0" cellpadding="20" cellspacing="0" align="center">
<tr>
<td align="center" valign="middle"><button id='cmd_execute'>开始摇奖</button></td>
</tr>
<tr>
<td align="center" valign="middle"><div id='randmizenum' style='width:400px; border:2px solid blue;font-size:20px;'></div></td>
</tr>
<tr>
<td align="center" valign="middle"><div id='awardnumber'></div></td>
</tr>
<tr>
<td align="center" valign="middle" align='center'>edited By 惠州环境信息中心</td>
</tr>
</table>
<!-- 把从数据库读出的数据放到这里来 -->
<input type="hidden" name="UserNo" id="NoUser" value="<%=strList%>">
<SCRIPT LANGUAGE="JavaScript">
<!--
function $(obj) {return document.getElementById(obj);}
function rollaward() {var awardnum};
rollaward.prototype.awardnum=null;
rollaward.prototype.rollspeed=10;
rollaward.prototype.count=0;
rollaward.prototype.awardArray=new Array();
//-------------分析从数据库中读出的数据
var strUserNo = document.getElementById("NoUser");
var strList1 = strUserNo.value;
var strSplit = strList1.split(",");
rollaward.prototype.total = strSplit.length;
//------------------------------------------
rollaward.initialize=function() {
for(var i=0;i<rollaward.prototype.total;i++)
rollaward.prototype.awardArray=strSplit;
$('randmizenum').innerHTML+='<b>即 将 摇 出 幸 运 大 奖 !</b>';
}
rollaward.start=function() {
if(rollaward.prototype.total==0)
{
alert('抽奖已顺利完成!');
clearInterval(interval);
return;
}
rollaward.awardnum=parseInt(Math.random()*(rollaward.prototype.total));
$('randmizenum').innerHTML=rollaward.prototype.awardArray;
$('cmd_execute').value='停止摇奖';
}
function _click(){event.srcElement.value=='开始摇奖'?interval=setInterval(rollaward.start,rollaward.prototype.rollspeed):rollaward.stop();}
rollaward.initialize();
$('cmd_execute').attachEvent('onclick',_click);
//-->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
rollaward.stop=function()
{
clearInterval(interval);
rollaward.prototype.count++;
if(rollaward.prototype.count<2)
$('awardnumber').innerHTML+='<b>一等奖幸运儿:</b>' +rollaward.prototype.awardArray+'<br/>'+'<br/>';
else
if(rollaward.prototype.count<5)
$('awardnumber').innerHTML+='<b>二等奖幸运儿:</b>' +rollaward.prototype.awardArray+'<br/>'+'<br/>';
else
if(rollaward.prototype.count<11)
$('awardnumber').innerHTML+='<b>三等奖幸运儿:</b>' +rollaward.prototype.awardArray+'<br/>'+'<br/>';
else
if(rollaward.prototype.count>=11)
alert('抽奖已顺利完成!')
$('cmd_execute').value='开始摇奖';
for(var i=rollaward.awardnum;i<rollaward.prototype.total;i++)
rollaward.prototype.awardArray=rollaward.prototype.awardArray;
rollaward.prototype.total--;
rollaward.prototype.awardArray.length--;
}
</SCRIPT>
</BODY>
</HTML>
[ 本帖最后由 2002070344 于 2007-5-21 00:06 编辑 ] 原帖由 iptton 于 2007/5/15 01:31 发表
刚刚搜了下 JS访问数据
貌似访问的是本地的数据库,而不是服务器的数据库
lz说的js应该说的是ASP里面的js语法~应该说的是除了vbscript语法外,用js语法的asp如何连接数据库。
页:
[1]
2