注册 登录
编程论坛 ASP技术论坛

javascript里面能否加入ASP代码?

发布于 2010-05-17 12:20, 743 次点击
javascript里面能否加入ASP代码?
<Script Language ="JAVAScript">
function baomcy(inches)  {
   var username = "<%=session("UserName")%>";
   if(username =="")
   alert("请登陆");
   else
   {
   <%
   dim rsuser
   set rsuser=server.createobject("adodb.recordset")
   sql3="SELECT * FROM aaa WHERE id="&ttid
   rsuser.open sql3,conn,1,3
   'rsuser.addnew
   rsuser("leib_user")=session("UserName")
   rsuser.update
   rsuser.close
  %>
  alert("成功提交!");
   }


现在是这样:这段代码是在onClick事件中调用的! 按照设计意图应该是点击之后执行!
问题:函数可以正常执行但是即使没有点击按钮也能自动执行!有哪位仁兄能告诉我原因以及如何修改!
注意:我这里是按钮点击调用的!

如果我要实现以上功能!那个代码块应该如何书写?是不是一定要用纯javascript来完成?如果是能否给出代码?


5 回复
#2
yms1232010-05-17 14:16
#3
2010-05-17 22:13
回复 2楼 yms123
如果javascript只在客户端执行,那就无法对服务器上的数据进行操作了可以这样理解吗!更进一步的说,单独的javascript脚本是无法对数据库进行读写操作?如果我不依靠vbscript,动态网站的功能就无法实现?

[ 本帖最后由 usershop 于 2010-5-17 22:20 编辑 ]
#4
yms1232010-05-18 16:45
严格意义来讲javascript也是能在服务器端执行的
在客户端执行的脚本代码
一般只有在<script>脚本没有指明runat="server"的前提下比如
<script language="javascript" runat="server">
function abc()
{
   Response.Write("这是在服务器端执行的Javascript");
}
</script>

<script language="javascript" >
function abc()
{
   alert("这是在客户端执行的Javascript");
}
</script>
最最重要的一点,无论客户端用javascript或vbscript,或者服务器端。
客户端与服务器端的任何脚本和程序都是独立运行的,互不相干(无论这个脚本用什么语言写的)。
所以
<Script Language ="JAVAScript">
function baomcy(inches)  {
   var username = "<%=session("UserName")%>";
   if(username =="")
   alert("请登陆");
   else
   {
   <%
   dim rsuser
   set rsuser=server.createobject("adodb.recordset")
   sql3="SELECT * FROM aaa WHERE id="&ttid
   rsuser.open sql3,conn,1,3
   'rsuser.addnew
   rsuser("leib_user")=session("UserName")
   rsuser.update
   rsuser.close
  %>
  alert("成功提交!");
 }
你这段代码想要客户端判断用户名不为空,再修改数据库。
但是你这样写是错误的在于,服务器端的代码先执行,而且只会执行<%%>内或<script runat="server">的脚本,其他脚本不会执行。
所以<%%>早在网页加载时就执行了,因为服务器代码优先于客户端代码先执行。
这是因为网页是先从服务器端下载到客户端浏览器的,你输入网址的网页不存在你的电脑上。
通俗点说你输入百度网址,你电脑里存着百度的网页原始文件程序了么?
因此,实现你这个功能,要么用传统做法判断用户名是否为空后,提交表单或用self.location向服务器发送请求一个再来修改
要么使用Ajax来实现,不过Ajax也得要向服务器发送请求。
传统做法思路
<html>
<head>
<Script Language ="JAVAScript">
function baomcy(inches)
{
   var username = "<%=session("UserName")%>";
   if(username =="")
     alert("请登陆");
   else
   {
     var thref=self.location.href;
     if(thref.indexOf('?')!=-1)
        thref+="&Action=UpdateSession";
     else
        thref+="?Action=UpdateSession";
     self.location=thref;   
   }
}
function Page_Load()
{
 <%
   IF Request("Action")="UpdateSession" Then
      dim rsuser
      set rsuser=server.createobject("adodb.recordset")
      sql3="SELECT * FROM aaa WHERE id="&ttid
      rsuser.open sql3,conn,1,3
      rsuser("leib_user")=session("UserName")
      rsuser.update
      rsuser.close
      Response.Write "alert('成功提交');"
   End IF
 %>
}
Page_Load();
</script>
</head>
<body>
</body>
</html>

[ 本帖最后由 yms123 于 2010-5-18 16:48 编辑 ]
#5
2010-05-18 20:19
回复 4楼 yms123
你的分析很详尽,思路清晰表述的也很清楚在此先谢谢了!希望能交个朋友!我的QQ: 54028037 如果有兴趣加我 请在验证中 加上你的用户名 也就是 yms123 本想今天就结贴 但是我还想看看其他人对同一问题的解决办法 我这是第二次问这个问题了

[ 本帖最后由 usershop 于 2010-5-18 21:17 编辑 ]
#6
2010-05-19 19:59
对此问题的满意解答看来只有这一位朋友了!呵呵!用心的人看来只是少数!
1