Когда я удаляю первый раз, отсоединение изображения работает хорошо, и строка успешно удаляется из таблицы данных.
Проблема в том, что я использую Ajax Jquery для запроса удалить и отменить связь изображения, чтобы страница не обновлялась sh, и когда я пытаюсь отсоединить и удалить его во второй раз, он не имеет никакого ответа, и изображение не отсоединяется, и строка не удаляется.
Кроме того, я пытаюсь использовать таблицу данных jquery для загрузки строк, но она не синхронизирует c данные.
Ajax код:
var id = $('#deleteAdmin').data('id');
$.ajax({
type : "POST",
url : "<?php echo base_url(); ?>CRUD_Controller/crud_delete/" + id + "/administrador",
cache: false,
contentType: false,
processData: false,
dataType: 'html',
success: function(data){
/*Func Ajax get admin without access*/
$.ajax({
type : "POST",
url : "<?php echo base_url(); ?>CRUD_Controller/crud_getDataAll/administrador/administradores_null",
cache: false,
contentType: false,
processData: false,
dataType: 'html',
success: function(data){
$('#example2 tbody').html(data);
},
error:function(xhr)
{
alert('Algo falhou, nao caregou a tabela. - ' + xhr.statusText);
}
});
$('#atribuir').modal('hide');
swalWithBootstrapButtons.fire(
'Removido!',
'O administrador foi removido do sistema com sucesso.',
'success'
);
},
error:function(xhr)
{
alert('Algo falhou, carregue a página novamente. - Erro : ' + xhr.statusText);
}
});
Функции контроллера:
public function crud_delete($id, $table_name)
{
switch ($table_name) {
case 'administrador':
$rows = $this->Administracao_model->getData($id, $table_name);
foreach($rows as $row) {
$imagem = $row->imagem;
unlink(FCPATH.'assets/images/Administradores/'.$imagem);
}
$this->Administracao_model->deleteData($id, $table_name);
break;
}
}
public function crud_getDataAll($table_name, $page_name)
{
switch ($page_name) {
case 'administradores_null':
$rows = $this->Administracao_model->getDataAdminSemAcesso($table_name);
foreach($rows as $row) {
echo '<tr>';
echo '<td class="align-middle text-center"><a href="#">#ADMIN' . $row->id . '</a></td>';
echo '<td class="align-middle text-center">' . $row->nome . '</td>';
echo '<td class="align-middle text-center">' . $row->apelido . '</td>';
echo '<td class="align-middle text-center">' . $row->cargo . '</td>';
echo '<td class="align-middle text-center"><span class="badge badge-danger">Sem Acesso</span></td>';
echo '<td class="align-middle text-center"><a href="#" class="btn btn-success text-white btn-sm" data-toggle="modal" data-id="'.$row->id.'" data-nome="'.$row->nome.'" data-apelido="'.$row->apelido.'" data-cargo="'.$row->cargo.'" data-contacto="'.$row->contacto.'" data-email="'.$row->email.'" data-imagem="'.$row->imagem.'" data-target="#atribuir" id="atrb"><i class="fas fa-edit"></i></a></td>';
echo '</tr>';
}
break;
default:
echo "Erro no contnroller.";
break;
}
}
Модели:
function getDataAdminSemAcesso($table_name)
{
$this->db->select('*');
$this->db->where('id_nivel', null);
$query = $this->db->get($table_name);
return $query->result();
}
function getData($id, $table_name)
{
$this->db->select('*');
$this->db->where('id', $id);
$query = $this->db->get($table_name);
return $query->result();
}
function deleteData($id, $table_name)
{
$this->db->where('id', $id);
$this->db->delete($table_name);
}
Большое спасибо заранее!