Флажок отображения данных массива на codeigniter - PullRequest
0 голосов
/ 22 мая 2018

У меня есть данные таблицы, как показано ниже, я хочу, чтобы данные отображались в чекбоксе в соответствии с их значением, данные представлены в виде массива, и я испытываю трудности при их применении.поэтому, если данных не существует, то возникает ошибка.

   | ID  | choice | 
   | ____|________|
   |  1  |    A   |
   |  1  |    B   |
   |  3  |    C   | 
   |  6  |    A   | 
   |  6  |    C   |
   |  5  |    A   |
   |  5  |    B   |
   |  5  |    C   |

 <input type="checkbox" name="choice[]" value="A"  <?php ($edit[0]['is'] == "A") ? print "checked": ''; ?> >
 <input type="checkbox" name="choice[]" value="B" <?php ($edit[1]['is'] == "A") ? print "checked": ''; ?> >
 <input type="checkbox" name="choice[]" value="C" <?php ($edit[2]['is'] == "A") ? print "checked": ''; ?>>

контроллеры

public function edit($id) {
    $data = array('edit' => $this->My_models->edit_data($id));
    $this->load->view('template', $data);
}   

Models

function edit_data($id){
    $query = $this->db->select('choice')
                      ->from('my_table')
                      ->where('id', $id)
                      ->get();
    if ($query->num_rows() > 0) {
        foreach ($query->result_array() as $data) {
            $result[] = $data;
        }
        return $result;
    }                         
}   

ошибка при выборе данных, есть только 2или 1

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Я думал, что вы должны использовать in_array() функцию PHP

<?php 
    $checkboxArray = array(1, 2, 3, 4); // get from database or you can set it in your view
    $savedCheckedboxArray = $edit = array(2,4); // saved into database

    foreach($checkboxArray as $row) 
    { 
        $checked = "";
        if (in_array($row, $savedCheckedboxArray)) {
            $checked = "checked:checked";
        } ?>
    <input type="checkbox" name="choice[]" value="<?php echo $row;?>" <?php echo $checked ?> />
 <?php } ?>
0 голосов
/ 22 мая 2018

Проверьте наличие родительского ключа перед проверкой дочернего ключа.

 <input type="checkbox" name="choice[]" value="A"  <?php (array_key_exists(0, $edit) && $edit[0]['is'] == "A") ? print "checked": ''; ?>>
 <input type="checkbox" name="choice[]" value="B" <?php (array_key_exists(1, $edit) && $edit[1]['is'] == "A") ? print "checked": ''; ?>>
 <input type="checkbox" name="choice[]" value="C" <?php (array_key_exists(2, $edit) && $edit[2]['is'] == "A") ? print "checked": ''; ?>>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...