我在数据库中有一个人员表,每个人都有唯一的ID(p_id)。 然后还有另外两个表(授权和干预),其记录与(p_id)链接到人员表
因此,我需要从数据库中删除人员,我将p_id传递/发送到控制器中的删除功能以删除人员,但是我需要先检查授权和干预表中是否没有记录,然后才能删除人员删除。
我在p_id上使用form_validation
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('','');
$this->form_validation->set_rules(
'p_id', 'Autorisations', array(
'trim', array(
'p_id_auth_callable',array($this->Personnel_model, 'check_pers_tasks')
)
),
array('p_id_auth_callable' => ' Delete All {field}')
);
$this->form_validation->set_rules(
'p_id', 'Interventions', array(
'trim', array('p_id_intv_callable',array($this->Personnel_model, 'check_pers_intv'))
),
array('p_id_intv_callable' => ' Delete All {field}')
);
if ($this->form_validation->run() == FALSE){
$pers_delete_msg['icon'] = 'fas fa-exclamation-triangle fa-lg';
$pers_delete_msg['title'] = 'Warning';
$pers_delete_msg['status'] = 'warning';
$pers_delete_msg['text'] = validation_errors('<span class="fas fa-exclamation-triangle"></span>','');// . print_r($post_val,true) ;
}
else{
//delete person
}
这两个规则都有效(如果我使用其中一个),我会得到正确的消息。
如果我像上面的代码一样同时使用这两个规则,则只会生成最后一条规则的消息。
我可以在一条规则中合并2个可调用项。
我使用datatable插件,并通过jquery ajax函数将p_id发送到控制器
$('#table tbody').on( 'click', '.delete_pers', function (e) {
e.preventDefault();
var pers_data = table.row( $(this).parents('tr') ).data();
$.ajax({
url: base_url +"personnel/delete_pers/",
data: {
p_id: pers_data['p_id']
},
type: 'POST',
dataType:'json',
success: function(response){
//display response
}
error: function(response){
//display
}
} );