使用Codeigniter复选框删除对象

时间:2013-02-07 18:08:30

标签: php forms codeigniter checkbox

我已经阅读了很多这样的帖子,但未能找到我的特殊情况。想要删除所选的复选框。现在您可以提交表单,它会将您带到所有正确的页面,除非它实际上没有删除任何内容。

这是我的控制器信息

function deleteFolder() {
   if(array_key_exists('deleteMe',$_POST)) {
      $checkbox = $this->input->post['checkbox']; 
      $this->index_model->deleteFolder($checkbox);
   }
 $this->folderdeleted();
}

这是我的模特

function deleteFolder($checkbox) {
  $this->db->where('folderName', 'folderName'); 
  $this->db->delete('senior', $checkbox);
return;
}

这是我的观点

<!DOCTYPE html>
<?php $this->load->view('partials/page_head'); ?> 
<body>
  <div id="container">
    <div id="top">
      <div class="topcenter">
       <h2><a class="homebtn" href="<?php echo base_url();?>">Home</a></h2>
      </div>
      <div class="navdescription"><span>Delete Page</span></div>
    </div>
      <div class="projectFolders">
      <?php foreach($foldername as $row) { ?>
        <div class="folder">
          <button><?php echo $row->folderName; ?></button>
          <div class="delete">
            <form name="delete" method="post" action="<?php echo base_url(); ?>index.php/home/folderdeleted">    
              <p>
                <input type = "checkbox" id = "check_<?php echo $row->folderName; ?>"/>
                <?php echo form_submit('deleteFolder', 'Delete'); ?>
              </p>
          </form>
          </div>
        </div>
      <?php } ?>
    </div>
  </div><!-- End of container div -->
</body>
</html>

1 个答案:

答案 0 :(得分:0)

您的代码中存在多个错误。我不确定我是否找到了所有这些以及代码是否可行。

控制器应该是:

function deleteFolder() {
   if($this->input->post('checkbox') !== false) {
      $checkbox = $this->input->post('checkbox');
      $this->index_model->deleteFolder($checkbox);
   }
 $this->folderdeleted();
}

模型应该是:

function deleteFolder($checkbox) {
  $this->db->where('folderName', $checkbox); 
  $this->db->delete('senior');
return;
}

视图中的输入标记应为:

                <input name="checkbox" value="<?php echo $row->folderName; ?>" type = "checkbox" id = "check_<?php echo $row->folderName; ?>"/>

对复选框的一点警告:如果未选中它们,则在$ _POST变量中找不到任何内容。