【发布时间】:2016-03-13 21:56:02
【问题描述】:
我正在尝试使用 jquery 和 Codeigniter(3) 从 Mysql DB 中的表中删除记录。这应该是一个非常简单的操作,但我是 Codeigniter 和 jquery 的新手,因此我遇到了一些问题。
这是视图的一部分,我必须删除记录,特别是这是 books(libri) 部分:
<?php
echo "<table>";
echo "<tbody>";
echo "</br>";
foreach ($libri as $row):
?>
<tr>
<td>
<div>
</br>
<img src="<?php echo base_url('Immagini/book.png'); ?>" />
<a class="pdf" data-fancybox-type="iframe" rel="group" href="<?php
echo base_url($row['Url_suffix']) ?>"><?php echo $row['nome']; ?>
</a>
<a class='deleteUser' href="<?php
echo site_url('libro/elimina/'.$row['ID']) ?>">
<img src="<?php echo base_url('Immagini/button_close.png'); ?>"/>
</a>
</div>
</td>
</tr>
<?php
endforeach;
echo "</tbody>";
echo "</table>";
?>
</div>
</br>
</br>
<div>
<h3><span class="label label-success">Guide</span> </h3>
这是控制器(libro):
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Libro extends CI_Controller {
public function __construct(){
parent::__construct();
}
public function elimina($libri_id) {
$result=$this->libri->did_delete_row($libri_id);
redirect(site_url('admin/dashboard'), 'refresh');
//var_dump($result);
}
}
?>
这是 jquery 脚本:
<script type='text/javascript'>
$(document).ready(function(){
$(".deleteUser").click(function(e){
$this = $(this);
e.preventDefault();
var url = $(this).attr("href");
$.get(url, function(r){
if(r.success){
$this.closest("tr").remove();
}
})
});
});
</script>
这是 libri.php 模型:
<?php
/*
* File Name: libri.php
*/
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Libri extends CI_Model
{
function __construct()
{
//Call the Model constructor
parent::__construct();
}
function get_all() {
$query = $this->db->query('SELECT nome, ID, Url_suffix FROM libri');
return $query->result_array();
}
function get_all_api() {
$query = $this->db->query('SELECT * FROM libri');
return $query->result_array();
}
function get_one($libro_id) {
$this->db->where('ID',$libro_id);
$this->db->from('libri');
$query = $this->db->get();
if ($query->num_rows() > 0){
return $query->row();
}
else return false;
}
//fetch all employee records
function did_delete_row($id){
$this->db->where('ID',$id);
return $this->db->delete('libri');
}
function inserimento($data_2){
return $this->db->insert('libri',$data_2);
}
}
?>
如果没有 jquery 脚本,一切都可以正常工作,我的意思是页面会自行重新加载,然后该行就消失了。虽然,使用 jquery 脚本,页面不会自行重新加载,但“行”仍然存在。如果我重新加载页面,那么记录肯定会被删除。
我做错了什么?
【问题讨论】:
-
在浏览器中打开您的 javascript 控制台并检查是否有任何错误。
-
@Matt 我没有错误。
-
模型类在哪里?
-
@Borgboy 我用模型类 (libri) 编辑问题。
-
谢谢,在你的构造函数中,一定要在调用 parent::__construct(); 之后加载数据库; $this->load->database();
标签: javascript php jquery mysql codeigniter