Как удалить строку таблицы, определяемую представленной опцией раскрывающегося списка (Codeigniter) - PullRequest
0 голосов
/ 18 июня 2019

У меня есть форма с выпадающим меню, в котором параметры заполняются из строки 'nama_guru' внутри таблицы 'dropdown_list'. То, что я пытаюсь сделать, это удалить строку столбца 'nama_guru' этой таблицы, в зависимости от того, какая опция выпадающего меню отправлена.

Вот часть моего кода.

Раскрывающееся меню

<div class="left-inner-addon">
    <select input type="text" name="nama_guru" value="<?php echo $nama_guru ?>" class="form-control" id="inputNama" >
        <?php 
        foreach($nama_guru as $row)
        { 
            echo '<option value="'.$row->nama_guru.'">'.$row->nama_guru.'</option>';
        }
        ?>
    </select>
</div>

Контроллер

function data_kuesioner_save($idx = '', $where =''){
    if($_POST){
        $nama_guru          = $this->input->post('nama_guru');

        if($status == 'baru'){
            $data = array(
                'nama_guru' => $nama_guru,
            );
            $sukses = '
                <div class="alert alert-success">
                  <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
                  <strong>Sukses!</strong> Data anda telah tesimpan.
                </div>
            ';
            $this->siswamodel->deletedropdowndata($nama_guru);
            $this->session->set_flashdata('sukses', $sukses);
            $this->siswamodel->insertdata('data_kuesioner',$data);
            redirect('siswa/data_kuesioner_view');
        }
    }
}

Модель

class Siswamodel extends CI_Model {

    function insertdata($tabel, $data){
        return $this->db->insert($tabel,$data);
    }

    function deldata($tabel,$where){
        return $this->db->delete($tabel,$where);
    }

    function updatedata($tabel,$data,$where){
        return $this->db->update($tabel,$data,$where);
    }

    function selectdata($where = ''){
        return $this->db->query("select * from $where;");
    }

    function printjointable($where = ''){
        return $this->db->query("select * from $where;");
    }

    function deletedropdowndata($idx){
        $this->db->where('nama_guru', $idx);
        $this->db->delete('isi_dropdown1');
    }
}

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

ответ на запрос

function deletedropdowndata($idx){
  return $this->db->where('nama_guru', $idx)->delete('isi_dropdown1');
  }
0 голосов
/ 18 июня 2019

Добро пожаловать в SOF!

Сначала нам нужно исправить выпадающий список. Мы не указываем тип ввода для нашего элемента DOM select, для которого уже установлено значение «select», что означает выпадающий список. Во-вторых, атрибут value предназначен для опций, а не для самого элемента. Пожалуйста, смотрите следующий код.

<div class="left-inner-addon">
<select name="nama_guru" class="form-control" id="inputNama" >
    <?php 
    foreach($nama_guru as $row)
    { 
        echo '<option value="'.$row->nama_guru.'">'.$row->nama_guru.'</option>';
    }
    ?>
</select>
</div>

Хорошо, мы исправили нашу разметку. Теперь работаем над удалением части. Без формы, которую мы не можем сделать, я думаю, что у вас есть что-то вроде ниже, которое инкапсулирует остальную часть вашей разметки.

<form action="" method="post">
  // Form Content ...
</form>

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

Позволяет работать с вашей функцией контроллера

public function data_kuesioner_view()
{
    if($_POST)
    {
        // Delete data from table
        $this->siswamodel->deletedropdowndata($_POST);
        // Success Message
        $this->session->set_flashdata('success', 'Congratulations, Data removed.');
        // Redirect to the form
        redirect(base_url().'siswa/data_kuesioner_view');
    }
    else
    {
        // load form view
        $this->load->view('form');
    }
}

// Model function

public function deletedropdowndata($data)
{
    $this->db->where('nama_guru', $data['nama_guru']);
    $this->db->delete('isi_dropdown1');
    return true;
}

Давайте покажем наше флэш-сообщение

Над формой Просто поместите под кодом;

<?php if(!empty($this->session->flashdata('success'))){?>
        <div class="alert alert-success">
               <?php print_r($this->session->flashdata('success'));?>
        </div>
<?php }?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...