Удалить используя флажок в codeigniter - PullRequest
0 голосов
/ 17 мая 2011

У меня возникли проблемы с удалением моего флажка в codeigniter. У меня есть форма, в которой таблица отображается и заполняется данными из базы данных, и есть две кнопки отправки. Первая кнопка adduser, которую я уже сделал.

Моя проблема в том, что я понятия не имею, как получить значение флажка в отображаемой таблице. Вот фрагмент кода, чтобы лучше понять мою проблему:

Контроллер:

public function options()
    {
        $data['meta_title']="Users";
        $data['meta_desc']="Find your friends from our members";

        if ($this->input->post('AddUser'))
        {
            $this->load->view('template/header',$data);
            $this->load->view('users/add_view');
            $this->load->view('template/footer');
        }
        elseif($this->input->post('Delete'))
        {
            /// i have troubles with my logic here
        }
    }

Вид:

<?php foreach($query->result_array() as $row): ?>
        <tr class="even gradeC">
            <td><?php echo anchor('users/edit/'.$row['usrID'],$row['usrName']);?></td>
            <td><?php echo $row['usrpFirstName'].' '.$row['usrpLastName'];?></td>
            <td><?php echo $row['usrpBday'];?></td>
            <td><?php echo $row['usrpSex'];?></td>
            <td><?php echo $row['usrpAddress'];?></td>
            <td><input type="checkbox" name="checkID[]" id="checkID" value="<?php echo $row['usrID'];?>" />

              <label for="checkID"></label></td>
        </tr>
<? endforeach; ?>

Ответы [ 3 ]

0 голосов
/ 20 августа 2012

Тебе лучше использовать

<form method="post/get" action="url to ur controller">
   //some code to move data to controller
   <submit button>
</form>

и в вашем контроллере поместите функцию для удаления:

public function delete()
{
   //get the id's of rows which are checked and delete them as
   $this->db->where('userid in','array(checked ids)');
}
0 голосов
/ 25 марта 2014

Вы все отлично сделали, установив имя входа как массив, было правильным выбором.

Теперь, чтобы получить значения выбранного флажка, вы можете сделать так:

$ selectedUsers = $ this-> input-> get ('checkID') // Если вы установили метод формы как GET

или

$ selectedUsers = $ this-> input-> post ('checkID') // Если вы установили метод формы как POST

Тогда в вашей модели, если у вас есть функция

/**
 * @param array $values
 * @param string $field
 *
 * @return bool
 */
public function remove_in($values, $field)
{
    if ($values === false) {
        return FALSE;
    }

    $this->db->where_in($field, $values);

    return $this->db->delete($this->table);
}

Вы можете вызвать его с вашего контроллера, как:

$ this-> user_model-> remove_in ($ selectedUsers, 'user_id');

Предполагается, что название вашей модели user_model , которое вы загрузили с помощью $this->load->model('user_model'), а имя поля вашего идентификатора пользователя: user_id

Наслаждайтесь!


NB: Хотя это не имеет ничего общего с вашей ситуацией, но вы не должны использовать один и тот же идентификатор для нескольких элементов HTML. Вместо этого вы можете опустить часть id, если это не нужно, например:

<input type="checkbox" name="checkID[]" value="<?php echo $row['usrID'];?>" />

или если вам нужен идентификатор, который вы должны использовать, например:

<input type="checkbox" name="checkID[]" id="checkID_<?php echo $row['usrID'];?>" value="<?php echo $row['usrID'];?>" />
0 голосов
/ 17 мая 2011

Было бы проще понять ваш вопрос, если бы вы на самом деле добавили и кнопку отправки.

Я постараюсь объяснить вам принципы;Вам нужна форма для переноса данных, которые вы хотите отправить, например:

<form action="whereToSendTheData.php" method="post">
    <table>
        <tr class="even gradeC">
            <td><?php echo anchor('users/edit/'.$row['usrID'],$row['usrName']);?></td>
            <td><?php echo $row['usrpFirstName'].' '.$row['usrpLastName'];?></td>
            <td><?php echo $row['usrpBday'];?></td>
            <td><?php echo $row['usrpSex'];?></td>
            <td><?php echo $row['usrpAddress'];?></td>
            <td><input type="checkbox" name="checkID" id="checkID" value="<?php echo $row['usrID'];?>" />

            <label for="checkID"></label></td>
        </tr>
    </table>
    <input type="submit" value="Add user">
</form>

этот скрипт отправит данные в вашей форме на страницу "whereToSendTheData.php", которую я определил ватрибут "action" выше.

в "whereToSendData.php" вам необходим скрипт для обработки / извлечения этих данных.например:

<?php
echo "hello $_POST['checkID']";
?>

, который выведет "привет" и значение checkID.

Вы можете узнать больше о теме, здесь: http://www.w3schools.com/php/php_post.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...