如果选中复选框,则为经典asp,否则选中复选框

时间:2018-04-20 12:31:59

标签: checkbox asp-classic

您好我是经典asp的新手,我无法理解这个简单的问题。我有一个带有2个复选框的表单,这是我想要的结果:

如果用户同时选中两个复选框,则将特定值插入数据库。否则将不同的值插入数据库。我尝试了一些事情但是目前我试图检查复选框是否没有值然后插入但是其他内容总是会触发。 默认情况下,用户必须接受条款复选框。

希望这是有道理的。感谢

<FORM method="POST" action="<% =Request.ServerVariables("SCRIPT_NAME")%>" >

  <p>  <input type="checkbox" name="Privacy" value="1" id="Privacy" >privacy checkbox<a href="javascript:void(0)" onclick="document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'"><img src="/images/qmark.png" /></a></p>

  <p> <input onchange="this.setCustomValidity(validity.valueMissing ? 'Please indicate that you accept the Terms and Conditions' : '');" id="field_terms" type="checkbox" name="Terms" value="2" >I accept Terms and Conditions</p> 

 </form>

然后我的asp看起来像:

if Request.form("Privacy") <> "" Then

SQL = "INSERT INTO table1 (t1_accept) VALUES('N')"
cnSub.execute SQL
Else

SQL = "INSERT INTO table1 (t1_accept) VALUES('Y')"
cnSub.execute SQL

End If

2 个答案:

答案 0 :(得分:1)

让我们看一下三种情况:

  1. 情况1您有5个名称相同的TEXT类型输入,例如Studiox
    • request.form(“ Studiox”)将为您提供一个字符串,其中包含所有5个输入的值,并用逗号分隔(v1,v2,v3,v4,v5)。
  2. 情况2,您有5个名称相同的CHECKBOX类型的输入,例如Studiox
    • request.form(“ Studiox”)还将仅为您提供一个字符串,但带有CHECKED输入的值,并用逗号分隔(例如v1,v3,v5)。
  3. 情况3。您有2个(或多个)CHECKBOX类型的输入,名称不同,例如Studio_x和Studio_y。
    • 情况1和情况2的逻辑结论是,“未检查”复选框不发送任何值!
    • 因此,您可以按以下方式测试Studio_x是否被检查:如果request.form(“ Studio_x”)<>“”,则选中。

答案 1 :(得分:0)

试试这个:

If Request.Form("Privacy") = "1" Then
    SQL = "INSERT INTO table1 (t1_accept) VALUES('Y')"
Else
    SQL = "INSERT INTO table1 (t1_accept) VALUES('N')"
End If
cnSub.execute SQL

请注意,如果Privacy的值为1,则此代码会进行显式检查,如果它在表中插入值Y,否则Privacy的任何其他值都会在表中插入N值。