下面是我的 html、ajax 和数据库脚本,用于从数据库中删除记录,
HTML
<input type="file" name="gallery[]" id="gallery" data-maxupload="<?php echo $maxupload; ?>" multiple="">
<div>
<img src="..." class="item-1768"> <span class="del_button-" id="del-1768">X</span>
........
</div>
AJAX
$("body").on("click", ".del_button", function(e) {
e.preventDefault();
var clickedID = this.id.split('-');
var DbNumberID = clickedID[1];
var myData = 'recordToDelete='+ DbNumberID;
var base_url = '<?php echo base_url(); ?>';
$('.item_'+DbNumberID).addClass( "sel" );
$(this).hide();
$.ajax({
type: "POST",
url: base_url + "client/delete_gallery_image",
dataType: "text",
data:myData,
success:function(response){
$('.item_'+DbNumberID).fadeOut();
console.log(response);
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
});
型号,
public function delete_gallery_image($id){
$this->db->delete('employer_gallery', array('id' => $id));
return $this->db->affected_rows();
}
此代码的基本思想是允许用户仅上传 5 个文件。由于动态 ajax 删除,我无法获取实时记录数。上面的代码在删除记录方面效果很好。现在我想返回数据库中的剩余行。
所以在模型中,我尝试使用这样的东西,
public function delete_gallery_image($id){
$this->db->delete('employer_gallery', array('id' => $id));
$sql = " SELECT * FROM (`employer_gallery`) where user_id = $id";
$query = $this->db->query ( $sql );
return $query->num_rows ();
}
如果我得到一个计数,我可以将其分配给变量 $maxupload。这样我就可以对文件选择进行一些验证。但上面的模型不起作用,它给了我一个 500 内部服务器错误。
有什么办法可以解决这个问题吗?
最佳答案
function delete_gallery_image($id) {
$this->db->delete ( 'employer_gallery', array (
'id' => $id
) );
/* Flush the DB cache */
$this->db->flush_cache ();
/* $sql = " SELECT * FROM (`employer_gallery`) where user_id = $id"; */
$this->db->select ( '*' );
$this->db->from ( 'employer_gallery' );
return $rowcount = $query->num_rows ();
}
关于php - Codeigniter Ajax 删除一条记录并返回可用记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23823499/