2017-07-18 46 views
0

我有一个复选框,我希望当我检查复选框时,它应该在数据库中插入1个其他0。我怎样才能做到这一点?这是 更早的一个单选按钮字段,它正在转换为复选框,因此 已经在数据库中输入正常,我发布了我的数据库 代码。如何在coldfusion代码中插入单个复选框的值

<tr> 
      <td class="leftFormLabelCell extrasmalltextbold" style="border- 
      left:1px solid ##9c9c9c;" width="15%"> 
      #mocTrans.Translate("Required template Action Item?")# 
      </td> 

      <td> 
       <input type="checkbox" name="reqtempactionitem" value="0"> 
      </td> 
    </tr> 
    Databse code: 
    <cfif StructKeyExists(URL, "reqtempactionitem") and 
    IsBoolean(URL.reqtempactionitem)> 
    , #reqtempactionitem# 
    <cfelse> 
    , 0 
    </cfif> 
+0

你有'value =“0”'。您通常将值设置为“1”。如果选中,你会在变量中得到1;否则StructKeyExists返回false。 –

+0

我无法理解这个正确的代码,你能帮助我,这应该帮助我插入我的价值观吗? –

+0

嘿,Thankyou BernhardDöbler我的代码现在正在工作。非常感谢。 –

回答

2

方式HTML复选框的工作是,如果被选中,浏览器将提交[checkboxname]=[value]到Web服务器。如果该框是而不是选中,则浏览器不会向服务器提交任何内容

所以最简单的解决方案使用cfparam,这将使提交的复选框成为默认值。

因此,在你的HTML,你应该有:

<input type="checkbox" name="reqtempactionitem" value="1"> 

(正如在评论中指出的那样,你的价值为0,应为1)

然后,在数据库的代码:

<cfparam name="reqtempactionitem" default="0"> 
... 
dbfield = <cfqueryparam cfsqltype="cf_sql_bit" value="#reqtempactionitem#"> 

注意使用cfqueryparam,这是在性能和​​安全方面的原因所有查询强烈推荐。

+0

\t \t \t \t \t \t \t \t #mocTrans.Translate( “必需的模板行动项目?”)# \t \t \t \t \t \t \t \t \t \t \t ​​ \t \t < input type =“checkbox”name =“reqtempactionitem”value =“1”> \t \t 对于数据库的代码: \t, \t \t \t,0 \t

+0

但它只有在数据库中输入1,我希望当我检查这个复选框,我应该得到1,否则我应该得到0.我怎么能做到这一点,你可以请我的代码,我已经浪费了我在这一天。 –

相关问题