0

试图将复选框“已检查状态”保存在我的数据库中。我为此使用了codeigniter。我将 cehckbox 表单值添加到数组中,如下所示: 'treated' => $this->input->post('treated'.$i),

然后我写入数据库,传递包含上述输入的数组。

这将作为“打开”写入数据库并与char/varchar. 但是,如果我将其更改为bittinyint(1)失败并出现 mssql 错误Conversion failed when converting the varchar value 'on' to data type tinyint.

如何传递选中的复选框值1而不是on

提前致谢。

更新

 $i=1;
    while($i<=$this->input->post('orderlines'))
  {
$treatedVal=$this->input->post('treated'.$i)?1:0;

      //set the data for line insert start
        $data = array(
      'treated' => $treatedVal,    
        );

        $this->sales_model->order_lines_insert($data);  
  $i++;
  }
4

3 回答 3

4

您应该在 HTML 本身中更改它。

<html>
    <input type="checkbox" name="check" value="1" />  <!--give it a value attribute the default is "on"-->
</html>
于 2013-06-25T13:53:31.787 回答
1

只需在创建数据数组之前执行此操作

 $treatedVal=$this->input->post('treated'.$i)?1:0;
 // then add this variable value to your array
 'treated' => $treatedVal,
于 2013-06-25T11:01:28.430 回答
0

我就是这样做的:

var myVal = ( $('#myCheckbox').is(':checked') ) ? 1 : 0;

alert('myVal is: ' +myVal); //alerts 1 if checked, 0 if not checked

jsFiddle Demo

于 2015-02-02T18:51:18.013 回答