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

[求助]如何判断提交form中的text.value与表aa的b字段的值相等,而不能提交

mlly1983 发布于 2007-09-25 10:05, 1977 次点击
<%set rs=Server.CreateObject("Adodb.Recordset")
sql="select * from cp"
rs.open sql,conn,1,3
%>


<script language="JavaScript">
<!--
function checkdata() {
if( addform.cpname.value =="") {
alert("\添加产品出错)
else if (addform.cpname.value == "<%=rs("name")%>")
alert("\添加产品出错,下面是产生错误的可能原因:\n\n·已有相同产品添加")
return false;
}
</script>

<form name="addform" method="post" action="cp_save.asp" onSubmit="return checkdata()">

我这样写,提交怎么不验证啊?
还望大侠指点,thank you,中秋快乐

22 回复
#2
shaoli42612007-09-25 10:18

在javascript里能加asp吗???
   我想问一下~~~

#3
mlly19832007-09-25 10:24
不晓得,我新手,呵呵
难道只可以在提交以后验证
#4
shaoli42612007-09-25 10:37
按我的理解是哎~~~~
  反正我是没有看见过在js里插入asp的~~~~
#5
mlly19832007-09-25 10:41
[CODE]cpname = Request("cpname")
if cpname = "" then
errstyle="·请添加产品名称!"
scripterr
else if cpname = rs1("cp_name") then
errstyle="·数据库已有此产品添加,请与管理员联系!"
scripterr
else
cpname = cpname
end if[/CODE]

这句话有缺少end吗?
#6
shaoli42612007-09-25 10:45

有错误啦~~~  
if
else if
else
end if

#7
mlly19832007-09-25 10:46
在哪里添加end?~~~~
#8
shaoli42612007-09-25 10:47
你自己检查你语句啊???
[CODE]cpname = Request("cpname")
if cpname = "" then
response.write"·请添加产品名称!"
response.end()
elseif cpname = rs1("cp_name") then
response.write"·数据库已有此产品添加,请与管理员联系!"
response.end()
else
cpname = cpname
end if[/CODE]

[此贴子已经被作者于2007-9-25 11:01:58编辑过]

#9
yms1232007-09-25 10:52

<%set rs=Server.CreateObject("Adodb.Recordset")
sql="select * from cp"
rs.open sql,conn,1,3
%>


<script language="JavaScript">
<!--
function checkdata() {
if( addform.cpname.value =="") {
alert("\添加产品出错)
}
else if (addform.cpname.value == "<%=rs("name")%>")
{
alert("\添加产品出错,下面是产生错误的可能原因:\n\n·已有相同产品添加")
return false;
}
}
</script>

<form name="addform" method="post" action="cp_save.asp" onSubmit="return checkdata()">
少了一对括号而已,楼主写完程序一定要先仔细检查一遍再运行,排除书写错误。

#10
mlly19832007-09-25 10:53
我不知道在哪里加
才开始学,麻烦您了
#11
shaoli42612007-09-25 10:58
斑竹~~~  在javascript中,真的能加asp代码????
#12
mlly19832007-09-25 11:00
这个是另外一个页面的,里面不包含javascript~~~提交了,就说缺少end
[CODE]cpname = Request("cpname")
if cpname = "" then
errstyle="·请添加产品名称!"
scripterr
else if cpname = rs1("cp_name") then
errstyle="·数据库已有此产品添加,请与管理员联系!"
scripterr
else
cpname = cpname
end if[/CODE]

[此贴子已经被作者于2007-9-25 11:01:26编辑过]

#13
shaoli42612007-09-25 11:02

[CODE]cpname = Request("cpname")
if cpname = "" then
response.write"·请添加产品名称!"
response.end()
elseif cpname = rs1("cp_name") then
response.write"·数据库已有此产品添加,请与管理员联系!"
response.end()
else
cpname = cpname
end if[/CODE]

#14
hmhz2007-09-25 11:03
<script language="JavaScript">
function checkdata() {
if (addform.cpname.value =="") {alert("添加产品出错");} else {
if (addform.cpname.value == "<%=rs("name")%>") {
alert("添加产品出错,下面是产生错误的可能原因:\n\n·已有相同产品添加");
return false;
}}}
</script>
#15
yms1232007-09-25 11:04
以下是引用shaoli4261在2007-9-25 10:58:04的发言:
斑竹~~~ 在javascript中,真的能加asp代码????

可以潜套
但是要注意虽然能够嵌套但两种代码不可以直接调用,比如
<script language="javascript">
<%
Dim TestVar
TestVar="Test String"
%>
alert(TestVar);
</script>
这样写就会出错误,javascript里找不到TestVar这个变量,因为变量在<%%>内定义的,这个变量只能在<%%>内使用。
而上面的程序修改成如下代码则正确
<script language="javascript">
<%
Dim TestVar
TestVar="Test String"
%>
alert("<%=TestVar%>");
</script>
因为这里的TestVar是从服务器端借助<%=%>将变量值输出到javascript脚本中的,不是直接调用因此,客户端alert直接显示变量值,所以是正确的。

#16
shaoli42612007-09-25 11:08
明白了~~~
谢谢斑竹~~~~~我又学会了一个新知识~~~~
#17
mlly19832007-09-25 11:09
谢谢各位啊!!!!!受益非浅
#18
mlly19832007-09-25 15:25

[CODE]<%
set rs11=Server.CreateObject("Adodb.Recordset")
sql11="select * from cp"
rs11.open sql11,conn,1,3

sub scripterr
response.write"<script>alert('操作出错,下面是产生错误的可能原因:\n\n"&errstyle&"');history.go(-1);</script>"
response.end
end sub
cpname = Request("cpname")
if Request("cpname")=rs11("name") then
errstyle="·产品名称出错"
scripterr
end if
cpbh = Request("cpbh")
if Request("cpbh")=rs11("bh") then
errstyle="·产品编号出错"
scripterr
end if
cpcd=Request("cpcd")
if Request("cpcd")=rs11("qy") then
errstyle="·生产企业出错"
scripterr
end if

set rs=Server.CreateObject("Adodb.Recordset")
sql="select * from zx where id="& session("id")
rs.open sql,conn,1,3
rs.addnew

rs("SMT_cpname")=cpname
rs("SMT_cpbh")=cpbh
rs("SMT_cpcd")=cpcd
rs("id")=session("id")

rs.update
rs.close
set rs=nothing
%>[/CODE]

为什么我从a.asp提交到这个b.asp页面后提交后,为什么只可以验证表cp的第一条id为3的记录如下图..

只有本站会员才能查看附件,请 登录

#19
yms1232007-09-25 15:28

回楼上如果是验证所有的内容,个人认为要么用SQL语句加条件,要么循环rs进行验证。

#20
mlly19832007-09-25 15:31

额。。。如何加rs循环呢?~谢谢

#21
yms1232007-09-25 15:39

sql11="select * from cp"
其实个人觉得楼主的代码还是直接用sql方便
sql11="select * from cp where cp_name='"&Request("cpname")&"'"
sql11=sql11&" and cp_bh="&Request("cpbh")
sql11=sql11&" and cp_scqy='"&Request("cpcd")&"'"
rs11.open sql11,conn,1,3
sub scripterr
response.write"<script>alert('操作出错,下面是产生错误的可能原因:\n\n"&errstyle&"');history.go(-1);</script>"
response.end
end sub
if not rs11.eof then
errstyle="·输入内容相同,数据库中已存在"
scripterr
end if

set rs=Server.CreateObject("Adodb.Recordset")
sql="select * from zx where id="& session("id")
rs.open sql,conn,1,3
rs.addnew

rs("SMT_cpname")=cpname
rs("SMT_cpbh")=cpbh
rs("SMT_cpcd")=cpcd
rs("id")=session("id")

rs.update
rs.close
set rs=nothing

这样不比验证一大堆要省事?

#22
tianyu1232007-09-25 15:42

cpname = Request("cpname")
if cpname = "" then
errstyle="·请添加产品名称!"
scripterr
else if cpname = rs1("cp_name") then
errstyle="·数据库已有此产品添加,请与管理员联系!"
scripterr
else
cpname = cpname
end if

语句错误!是 elseif 而不是 else if
#23
mlly19832007-09-25 15:51

好了,刚粗心了,谢谢

[此贴子已经被作者于2007-9-25 16:04:04编辑过]

1