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

不执行的函数,请指教

kelind 发布于 2011-07-25 23:10, 412 次点击
提交的onclick=“return check()"
function check()
{
if (document.form1.huohao1.value=="单击选择产品")
{
alert("还没有选择产品!");
return false;
}
if (document.form1.shulian1.value=="")
{
alert("请输入数量!");
return false;
}
if (document.form1.huiyuan3.value=="")
{
alert("会员没选择!")
return false
}
onsell()
}
</script>
<script  language="javascript">
function onsell()
{
<%
fukuan_money=request("fukuan_money")  "付款金额“
nowhuiyuan=request("huiyuan")         ”会员号"
nowshulian=request("shulian")         "数量"
nowprice=request("price")             "单价:
set rs_sell=server.createobject("adodb.recordset")
strsql="select * from huiyuan where card="&huiyuan   "会员表中会员号:card       "错误:'card='操作符丢失
set rs_sell=conn.execute(strsql)
set rs_ks=server.CreateObject("adodb.recordset")
str="select sum(price - fukuan_money) from sell where zu=true and id_huiyuan="&huiyuan   “错误:'id_huiyuan='操作符丢失
set rs_ks=conn.execute(str)

if (nowprice * nowshulian)-fukuan_money>0 then
   if (rs_ks(0)+(nowprice * nowshulian)-fukuan_money)-rs_sell("sfz")>0 then   "sfz:信用额度"
   %>
   {
   alert("信用额度不足")
   return false
   }
   <%
   end if
   end if
   %>
}
</script>

错误处改为:
strsql="select * from huiyuan where card=47“
str="select sum(price - fukuan_money) from sell where zu=true and id_huiyuan=47"
错误没有了,就是不执行。
请问:
1、为什么不能用&huiyuan? 如何用变量?
2、为什么不执行onsell()函数?
5 回复
#2
yms1232011-07-26 01:35
https://bbs.bccn.net/viewthread.php?tid=225295&extra=page%3D1%26amp%3Bfilter%3Ddigest
lz先看这个再来看你的代码为什么不执行函数
#3
kelind2011-07-26 11:06
云天雾地,没看懂.请版主指教.
#4
yms1232011-07-26 12:51
典型错误
<%
Function TSize(b)
'这是我自定义的函数
TSize="中国"
end function
%>
<a href="javascript:<%TSize('变量')%>" >点这里要使用我定义的函数</a>
(https://bbs.bccn.net/thread-225244-1-1.html)
  错误分析:
  混淆了服务器端脚本和客户端脚本的区别。实际执行时我们会发现,客户端根本没有收到什么TSize之类的代码,因为TSize是服务器端的程序,被引擎处理之后(注意引擎对于函数的处理,纯粹是给服务器端脚本调用的,不会发回到客户端)就消失了,不可能在客户端起作用。这就是说,客户端脚本无法直接调用服务器端脚本的函数。
  事实上,这个程序是有语法错误的,引擎处理这段内容的时候先找到了<%和%>之间的内容,也就是<%TSize('变量')%>,显然这段内容不符合VBScript的语法规则。嗯,改成<%=TSize("变量")%>在服务器端脚本就没有语法错误了,这时TSize函数可以正常返回值"中国",于是客户端收到的href属性是这样写的:"javascript:中国",是无法执行的。
function check()
{
if (document.form1.huohao1.value=="单击选择产品")
{
alert("还没有选择产品!");
return false;
}
if (document.form1.shulian1.value=="")
{
alert("请输入数量!");
return false;
}
if (document.form1.huiyuan3.value=="")
{
alert("会员没选择!")
return false
}
onsell()
}
</script>
<script  language="javascript">
function onsell()
{
<%
fukuan_money=request("fukuan_money")  "付款金额“
nowhuiyuan=request("huiyuan")         ”会员号"
nowshulian=request("shulian")         "数量"
nowprice=request("price")             "单价:
set rs_sell=server.createobject("adodb.recordset")
strsql="select * from huiyuan where card="&huiyuan   "会员表中会员号:card       "错误:'card='操作符丢失
set rs_sell=conn.execute(strsql)
set rs_ks=server.CreateObject("adodb.recordset")
str="select sum(price - fukuan_money) from sell where zu=true and id_huiyuan="&huiyuan   “错误:'id_huiyuan='操作符丢失
set rs_ks=conn.execute(str)

if (nowprice * nowshulian)-fukuan_money>0 then
   if (rs_ks(0)+(nowprice * nowshulian)-fukuan_money)-rs_sell("sfz")>0 then   "sfz:信用额度"
   %>
   {
   alert("信用额度不足")
   return false
   }
   <%
   end if
   end if
   %>
}
</script>
明显没有分清楚js代码与vbs代码是不可以直接调用执行的,不能两类代码混用
#5
kelind2011-07-26 14:23
版主讲得很好,本人初学.还是不知道怎么改.版主能否帮改一下.
#6
msgj2011-07-31 15:17
strsql="select * from huiyuan where card="&huiyuan 中 huiyuan用变量nowhuiyuan
1