如何删除由提交的下拉列表选项定义的表格行(Codeigniter)

时间:2019-06-18 07:53:04

标签: php codeigniter

我有一个带下拉菜单的表单,该菜单的选项从“ dropdown_list”表中的“ nama_guru”行填充。 我想做的就是根据提交的下拉菜单选项删除该表的“ 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 :(得分:0)

欢迎来到SOF!

首先,我们需要更正下拉菜单。我们不会将输入类型设置为已经设置为“ select”的select DOM元素,这意味着下拉菜单。其次,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>

当我们什么都没提及时,表单将提交给自己,这意味着我们可以使用与输出表单相同的函数来捕获请求。

让我们在您的Controller功能上工作

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 }?>

答案 1 :(得分:0)

返回查询

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