簡體   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