我是codeigniter的新手。在我的视图页面中,我在一个表中显示数据库中的数据,其中有两个用于更新和删除的锚标记。我想通过id从数据库中删除特定的行。
我的观看页面是
<?php foreach($query as $row){ ?>
<tr>
<td><?php echo $row->name ?></td>
<td><?php echo $row->testi ?></td>
<td><?php echo anchor('textarea/delete_row', 'DELETE', 'id="$row->id"'); ?></td>
<td><a href="#ajax-modal2" data-id="delete[]" role="button" class="Delete" data-toggle="modal" onClick="confirm_delete()"><i class="icon-trash"></i></a></td>
</tr>
<?php } ?>
</table>
我的控制器页面是
function delete_row()
{
$this->load->model('mod1');
$this->mod1->row_delete();
redirect($_SERVER['HTTP_REFERER']);
}
我的模特页面是
function row_delete()
{
$this->db->where('id', $id);
$this->db->delete('testimonials');
}
我想通过捕获相应的ID来删除该行。请不要苛刻。谢谢
答案 0 :(得分:23)
您在模型中使用$id
变量,但是您正在从无处采集它。您需要将$id
变量从控制器传递给模型。
允许通过row_delete()
方法的参数将$ id传递给模型。
function delete_row()
{
$this->load->model('mod1');
// Pass the $id to the row_delete() method
$this->mod1->row_delete($id);
redirect($_SERVER['HTTP_REFERER']);
}
将$ id添加到Model方法参数中。
function row_delete($id)
{
$this->db->where('id', $id);
$this->db->delete('testimonials');
}
现在的问题是你从你的控制器传递$id
变量,但它没有在控制器中的任何地方声明。
答案 1 :(得分:3)
一个简单的方法:
在视图中(传递id值):
<td><?php echo anchor('textarea/delete_row?id='.$row->id, 'DELETE', 'id="$row->id"'); ?></td>
控制器中的(接收id):
$id = $this->input->get('id');
$this->load->model('mod1');
$this->mod1->row_delete($id);
模型中的(获取传递的args):
function row_delete($id){}
实际上,您应该使用ajax将id值POST到控制器并删除该行,而不是GET。
答案 2 :(得分:2)
**multiple delete not working**
function delete_selection()
{
$id_array = array();
$selection = $this->input->post("selection", TRUE);
$id_array = explode("|", $selection);
foreach ($id_array as $item):
if ($item != ''):
//DELETE ROW
$this->db->where('entry_id', $item);
$this->db->delete('helpline_entry');
endif;
endforeach;
}
答案 3 :(得分:1)
它会进入网址,所以你可以通过两种方式获得它。 拳头
<td><?php echo anchor('textarea/delete_row', 'DELETE', 'id="$row->id"'); ?></td>
$id = $this->input->get('id');
第二个。
$id = $this->uri->segment(3);
但是在第二种方法中,你必须计算一下。网址中没有的网段。你的身份来了。 2,3,4等你必须通过。然后在();
答案 4 :(得分:1)
我的控制器
public function delete_category() //Created a controller class //
{
$this->load->model('Managecat'); //Load model Managecat here
$id=$this->input->get('id'); // get the requested in a variable
$sql_del=$this->Managecat->deleteRecord($id); //send the parameter $id in Managecat there I have created a function name deleteRecord
if($sql_del){
$data['success'] = "Category Have been deleted Successfully!!"; //success message goes here
}
}
我的模特
public function deleteRecord($id) {
$this->db->where('cat_id', $id);
$del=$this->db->delete('category');
return $del;
}