繁体   English   中英

将复选框保存在php中,但返回错误

[英]save checkbox in php but returned incorrect

也许我的问题在这个论坛中很熟悉,并且我的代码或多或少与此处的许多答案相似

我有一个表,像这样的数据:

 table, th, td { border: 1px solid #aaa; border-collapse: collapse; padding: 3px; } 
 <form name="test_form" method="post" action="<?= base_url().'save_time'; ?>"> <input type="submit" name="btn-submit" value="Save"/> <table> <thead> <tr> <th>No</th> <th><input type="checkbox" id="checkall"/></th> <th>Day<br></th> <th>Opening Time</th> <th>Closing Time</th> <th>Full Day<br></th> </tr> </thead> <tbody> <tr> <td>1</td> <td><input type="checkbox" name="cekday[]" value="1"/></td> <td>Monday</td> <td><input type="text" name="open_time[]" value="" readonly="true"/></td> <td><input type="text" name="close_time[]" value="" readonly="true"/></td> <td><input type="checkbox" name="full_day[]" value="0"/></td> </tr> <tr> <td>2</td> <td><input type="checkbox" name="cekday[]" value="2" checked="checked"/></td> <td>Tuesday</td> <td><input type="text" name="open_time[]" value="" readonly="true"/></td> <td><input type="text" name="close_time[]" value="" readonly="true"/></td> <td><input type="checkbox" name="full_day[]" value="1" checked="checked"/></td> </tr> <tr> <td>3</td> <td><input type="checkbox" name="cekday[]" value="3" checked="checked"/></td> <td>Wednesday</td> <td><input type="text" name="open_time[]" value="" readonly="true"/></td> <td><input type="text" name="close_time[]" value="" readonly="true"/></td> <td><input type="checkbox" name="full_day[]" value="1" checked="checked"/></td> </tr> <tr> <td>4</td><td><input type="checkbox" name="cekday[]" value="4" checked="checked"/></td> <td>Thursday</td> <td><input type="text" name="open_time[]" value="" readonly="true"/></td> <td><input type="text" name="close_time[]" value="" readonly="true"/></td> <td><input type="checkbox" name="full_day[]" value="1" checked="checked"/></td> </tr> <tr> <td>5</td> <td><input type="checkbox" name="cekday[]" value="5" checked="checked"/></td> <td>Friday</td> <td><input type="text" name="open_time[]" value="" readonly="true"/></td> <td><input type="text" name="close_time[]" value="" readonly="true"/></td> <td><input type="checkbox" name="full_day[]" value="1" checked="checked"/></td> </tr> <tr> <td>6</td> <td><input type="checkbox" name="cekday[]" value="6" checked="checked"/></td> <td>Saturday</td> <td><input type="text" name="open_time[]" value="" readonly="true"/></td> <td><input type="text" name="close_time[]" value="" readonly="true"/></td> <td><input type="checkbox" name="full_day[]" value="1" checked="checked"/></td> </tr> <tr> <td>7</td> <td><input type="checkbox" name="cekday[]" value="7" checked="checked"/></td> <td>Sunday</td> <td><input type="text" name="open_time[]" value="03:00:00"/></td> <td><input type="text" name="close_time[]" value="22:00:00"/></td> <td><input type="checkbox" name="full_day[]" value="0"/></td> </tr> </tbody> </table> </form> 

或在jsfiddle中

然后我想保存条件的数据:

  1. 如果单击cekday,则必须填写opening_time和close_time
  2. 如果单击cekday并且也单击了full_day,则open_time和close_time用空值填充

我的控制器:

public function save_time() {
    $detail = array();
    $numcheck = count($this->input->post('cekday'));

    for ($i = 0; $i < $numcheck; $i++) {
        $day = $this->input->post('cekday');

        if(isset($day[$i])) {
            $open_time = $this->input->post('opening_time');
            $close_time = $this->input->post('closing_time');
            $full = $this->input->post('full_day');

            $detail[] = array(
                        'day'           => $day[$i],
                        'opening_time'  => isset($full[$i]) ? $open_time[$i] : null,
                        'closing_time'  => isset($full[$i]) ? $close_time[$i] : null,
                        'full_day'      => isset($full[$i]) ? '1' : '0'
                    );  
        }   
    }
}

var_dump($detail);

但是当我检查结果不符合我的期望时:

Array 
(
[day] => Array
    (
        [0] => 2
        [1] => 3
        [2] => 4
        [3] => 5
        [4] => 6
        [5] => 7
    )

[opening_time] => Array
    (
        [0] => 
        [1] => 3:00
        [2] => 3:00
        [3] => 3:00
        [4] => 3:00
        [5] => 3:00
        [6] => 3:00
    )

[closing_time] => Array
    (
        [0] => 
        [1] => 
        [2] => 
        [3] => 
        [4] => 
        [5] => 
        [6] => 22:00
    )

[full_day] => Array
    (
        [0] => 1
        [1] => 1
        [2] => 1
        [3] => 1
        [4] => 1
    )

)

最后,我想使用insert_batch保存数据,谢谢您的帮助。

要获得上述输出,您必须在代码中进行以下更改。

1)首先,您必须为所有html输入元素指定id以在保存之前对其进行验证。

2)在提交表单时,您必须检查所有表单验证。 onnsubmit =“ return savevalidate()”-将其附加在表单标签中。

//javascript function
    function savevalidate(){
        if($('#cekday1').is(":checked") == true){
        // do your other validations
    }
    else 
    return false;
    }

同样也有其他验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM