2

Form_ValidationCodeigniterクラスを使用して検証したいこの html コードがあります。

<form id="thread" method="POST">
    <input type="checkbox" name="checkAllAuto" id="checkAll" onclick="CheckAll(this.id)" /><?php echo __t($dir_lang,'request_select_all');?> 
    <br />
    <?php foreach ($threads as $thread): ?>
    <input type="checkbox" class="threads" name="option[]" value="<?php echo $thread['th_id']; ?>" /> <?php echo $thread['th_title']; ?> <br>
    <?php endforeach; ?>
    <br />
    <input type="checkbox" name="mom" /> <?php echo __t($dir_lang,'request_send');?> 
    <br />
    <select name="cat">
        <?php foreach ($cats as $cat): ?>
        <option value="<?php echo $cat['id']; ?>"> <?php echo $cat['title']; ?> </option>
        <?php endforeach; ?>
    </select>
    <br /><input type="submit" value="<?php echo __t($dir_lang,'submit');?> " /><br>
</form>

を使用して、チェックボックスの最初のグループを検証しようとしていますForm_Validation

if ($this->input->isMethodPost())
{
    $this->tplData['showMess'] = true;
    $this->load->library('form_validation');
    $this->lang->load('form_validation', 'english');
    $this->form_validation->set_error_delimiters('<h3>', '</h3>');
    $this->form_validation->set_rules('options[]','options', 'required');
    if ($this->form_validation->run() == FALSE)
    {
        $this->tplData['showError'] = true;
        $this->tplData['mess'] = array(validation_errors());
    }else{ 
        // my work
    }
}

必要なメッセージが表示されますが、1つまたはすべてのチェックボックスを選択しても、必要なメッセージが表示されます。

4

1 に答える 1

7

options[]で自分の名前として設定したコードを見ると、次のようになりset_rulesます。

$this->form_validation->set_rules('options[]','options', 'required');

HTMLではチェックボックスの名前はoption[]

<input type="checkbox" class="threads" name="option[]" value="<?php echo $thread['th_id']; ?>" />

これを修正し、エラーの内容を教えてください。回答を更新します

于 2013-01-29T10:42:30.393 に答える