使用 JQuery 或 codeigniter 单击按钮时如何更改数据库表的值(设置为默认 false 的布尔列)
Posted
技术标签:
【中文标题】使用 JQuery 或 codeigniter 单击按钮时如何更改数据库表的值(设置为默认 false 的布尔列)【英文标题】:How to change the value of the database table (Boolean Column which is set as default false) when button is clicked using JQuery or codeigniter 【发布时间】:2019-09-19 01:55:06 【问题描述】:我正在使用 codeigniter 数据表,我想在单击删除按钮时“禁用”特定行(不应从数据库中删除数据)。
为此,我已经在数据库中设置了一个列(列名:deleteflag 数据类型:布尔默认值为 false)。
当我在数据库中将该值从 false 更改为 true 时,我在数据库中手动执行的特定 id(tr 行将被禁用)。
我在删除按钮中添加了一个名为 $delstatus 的类并分配了一个数组 ('0'=>' ', '1'=> 'disabled')
我想要的是,当我点击删除按钮时,应该通过将布尔值从 false 更改为 true 来禁用 id 行。
Here is my Controller:
$active_info = array('0'=>'','1'=>'disabled');
foreach ($list as $lists)
$delstatus=$active_info[$lists->deleteflag];
$row = array();
$slno++;
$row[] = '<input type="checkbox" class="'.$delstatus.' data-check" value="'.$lists->id.'" onclick="showBottomDelete()"/>';
$row[] = $slno;
$row[] = '<a class="btn '.$delstatus.' btn-sm btn-primary" href="javascript:void(0)" title="Edit" onclick="editCase('."'".$lists->id."'".')"><i class="glyphicon glyphicon-pencil"></i> Edit</a>
<a class="btn '.$delstatus.' btn-sm btn-danger" id="btnDelete" href="javascript:void(0)" title="Delete" onclick="deleteCase('."'".$lists->id."'".')"><i class="glyphicon glyphicon-trash"></i> Delete</a>';
Here is the view for delete in ajax:
function deleteCase(id)
if(confirm('Are you sure delete this data?'))
// ajax delete data to database
$.ajax(
url : "<?php echo site_url('case/ajax_delete')?>/"+id,
type: "POST",
dataType: "JSON",
success: function(data)
//if success reload ajax table
$('#modal_form').modal('hide');
reloadTable();
,
error: function (jqXHR, textStatus, errorThrown)
alert('Error deleting data');
);
</script>
Controller for delete:
public function ajax_delete($id)
$this->HomeModel->delete_by_id($id);
echo json_encode(array("status" => TRUE));
Model for delete:
public function delete_by_id($id)
$this->db->where('case_main.id',$id);
$this->db->delete('case_tracker.case_main');
$this->db->where('case_overview.id',$id);
$this->db->delete('case_tracker.case_overview');
注意:- case_tracker 是我的架构名称(我使用 postgre sql),case_main 和 case_overview 是我的表名
我想要的是,当我单击删除按钮时,应该通过使用 codeigniter 函数或 jquery 将布尔值从 false 更改为 true 来禁用 id 行。
请帮助处理代码。
提前致谢。
【问题讨论】:
你的函数在哪里ajax_delete
@shibon 我添加了要删除的控制器和模型。
您需要在查询中进行更新操作,而不是删除
$this->db->update('case_tracker.case_main',array('deleteflag'=>$delete_flag),array('id'=>$row['id'])) ;这段代码正确吗?我应该在模态中使用这一行而不是删除吗?
【参考方案1】:
我解决了我的错误..
感谢 @Shibon 发现我的愚蠢(但很大)错误。
将我的模型更改为:
public function delete_by_id($id)
$this->db->update('table_name',array('deleteflag' => '1'),array('id'=>$id));
if ($this->db->affected_rows())
return true;
else
return false;
注意:- deleteflag 是列名,用作布尔值 true 或 false。 (true 表示禁用该行,false 表示无)
【讨论】:
以上是关于使用 JQuery 或 codeigniter 单击按钮时如何更改数据库表的值(设置为默认 false 的布尔列)的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter 图片上传使用 jquery 和 ajax 错误 [重复]
或在我的 SQL 查询(使用 CodeIgniter 生成)中不使用 jQuery DataTables
在 CodeIgniter 的 url_title 函数中将单引号转换为分隔符