删除codeigniter中的数据库条目

时间:2014-06-30 03:44:00

标签: php mysql codeigniter

我正在开发一个在Codeigniter中设计的项目。我是Codeigniter框架/ php的新手,并试图学习相同的东西。目前我有一个页面显示所有结果的表格。我希望能够删除我想要的任何行。我在模型和控制器中添加了这个功能,视图中有一个删除图标,但我不知道如何协调它。

模型中的功能:

function delete_row($job){
  $querystr = 'delete from jobs where job = \''.$job.'\'';
  $query = $this->db->query($querystr);
  $arr = $query->result_array();
  $query->free_result();
  return ;
}

控制器中的功能:

public function delete(){
  $this->load->model('Job');
  $this->Job->delete_row($job);
  $this->load->view('my_view');
  return;
}

查看:(my_view.php(摘录))

if($key==='job'){
echo "<input type = 'image' src = '/home/Downloads/DeleteButtonSmall.png' width='20' height ='15' name ='delete_box' >";    }

该视图中包含许多功能,但上面这行是将删除图像设置为显示屏上可见的所有行。

请不要苛刻。关于如何使这项工作的任何建议。如果问题不清楚,请随时在评论中发布。我会尽量详细说明。

2 个答案:

答案 0 :(得分:2)

你的问题不明确,但是如果你想在控制器中调用一个函数(在这种情况下是删除)而不刷新你需要使用ajax。并且为了给你更多的自由也使用jQuery。 这是一个简单的事情,可以给你一个想法。 http://jsfiddle.net/KV3WF/4/

如果你成功删除了控制器中的

,你需要回显1,如果没有,你需要回显0。

我希望如果你发现任何不清楚的地方,我会帮助我答案。

如果你也想要你也不必在html中点击你可以在javascript中实现它

    $( document ).ready(function() {
           $('#category').click(function(){ //you just give an id to whatever you want to select plus you can do it by selecting a class instead id..... so you can give multiple buttons the same class("category")

                //DO the same ajax function in the jsfiddle.
           });
       //end of doc.ready   
       });

P.S。尝试练习不从数据库中删除,添加一个名为(hide)的列,并在想要删除时将其更新为1(默认为0)。

答案 1 :(得分:1)

不确定我是否理解您的问题,但根据我的理解,您尝试根据所点击的数据删除一行

在您的模型上,您可以尝试使用Active Record Pattern进行删除

<强>模型

function delete_row($job){
   $this->db->where('job', $job);
   $this->db->delete('jobs');
// DELETE from jobs WHERE job = $job
}

在您的控制器上,您可以在此处从视图中传递您的标识符,以便它可以与模型进行交互。

<强>控制器

function delete($id = '')
{
 $this->load->model->('Job');
 $this->Job->delete_row($id);
 redirect('to jobs view')
}

然后在您的视图中,您可以定义一个在控制器中调用delete方法的链接,并根据您在URI中传递的参数删除一行

说,如果你传递这样的东西

www.example.com/controller/delete/worker

它会删除job = worker

的行

查看

你可以这样做吗

<a href="controller/delete/worker">
<img src = '/home/Downloads/DeleteButtonSmall.png' width='20' height ='15' />
</a>