Codeigniter - No elimina con modal en Bootstrap 5

<<>>
 
Vista:
sin imagen de perfil

No elimina con modal en Bootstrap 5

Publicado por Fulco (1 intervención) el 03/01/2022 05:16:13
Modelo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
 
namespace App\Models;
 
use CodeIgniter\Model;
 
class CategoriasModel extends Model
{
    protected $table      = 'categoria';
    protected $primaryKey = 'codigo';
 
    protected $returnType     = 'array';
    protected $useSoftDeletes = false;
 
    protected $allowedFields = ['cate', 'barra','activo'];
 
    protected $useTimestamps = false;
    protected $createdField  = 'fechaal';
    protected $updatedField  = 'fechaat';
    protected $deletedField  = 'deleted_at';
 
    protected $validationRules    = [];
    protected $validationMessages = [];
    protected $skipValidation     = false;
}





Vista

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<div id="layoutSidenav_content">
                <main>
                    <div class="container-fluid px-4">
                        <h3 class="mt-4"><?php echo $titulo; ?></h3>
                        <div>
                            <p>
                                <a href="<?php echo base_url(); ?>/categorias/nuevo" class="btn btn-info">Agregar</a>
                                <a href="<?php echo base_url(); ?>/categorias/eliminados" class="btn btn-warning">Eliminados</a>
                            </p>
                        </div>
                            <div class="card-body">
                                <table id="datatablesSimple">
                                    <thead>
                                        <tr>
                                            <th>Código</th>
                                            <th>Categoria</th>
                                            <th>Barra</th>
                                            <th></th>
                                            <th></th>
                                        </tr>
                                    </thead>
 
                                        <?php foreach($datos as $dato) { ?>
                                            <tr>
                                                <td><?php echo $dato['codigo']; ?></td>
                                                <td><?php echo $dato['cate']; ?></td>
                                                <td><?php echo $dato['barra']; ?></td>
 
                                                <td><a href="<?php echo base_url(). '/categorias/editar/'. $dato
                                                ['codigo']; ?>" class="btn btn-primary">
                                                <i class="fas fa-edit"></i></a></td>
                                                <td><a href="#" data-href="<?php echo base_url(). '/categorias/eliminar/'. $dato
                                                ['codigo']; ?>" data-bs-toggle="modal" data-bs-target="#modal-confirma" data-placement="top"
                                                title="Eliminar Registro" class="btn btn-danger">
                                                <i class="far fa-trash-alt"></i></a></td>
 
 
 
                                            </tr>
                                        <?php } ?>
                                    <tbody>
 
                                    </tbody>
                                </table>
                            </div>
 
                    </div>
                </main>
                <div class="modal fade" id="modal-confirma" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
                    <div class="modal-dialog modal-sm">
                        <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title" id="exampleModalLabel">Elimina registro</h5>
                            <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                        </div>
                        <div class="modal-body">
                            <p> ¿Desea eliminar este Registro? </p>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-ligth" data-bs-dismiss="modal">Cancelar</button>
                            <button type="button" class="btn btn-ligth" data-bs-dismiss="modal">No</button>
                            <a class="btn btn-danger btn-ok">Si</a>
                        </div>
                        </div>
                    </div>
                </div>

Controlador
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
 
namespace App\Controllers;
use App\Models\CategoriasModel;
use App\Controllers\BaseController;
 
class Categorias extends BaseController
{
    protected $categorias;
 
    public function __construct()
    {
        $this->categorias = new CategoriasModel();
    }
 
    public function index($activo = 1)
    {
        $categorias = $this->categorias->where('activo',$activo)->findAll();
        $data = ['titulo' => 'Categorias', 'datos'=> $categorias];
        echo view('header');
        echo view('categorias/categorias', $data);
        echo view('footer');
    }
 
    public function eliminados($activo = 0)
    {
        $categorias = $this->categorias->where('activo',$activo)->findAll();
        $data = ['titulo' => 'Categorias Eliminadas', 'datos'=> $categorias];
        echo view('header');
        echo view('categorias/eliminados', $data);
        echo view('footer');
    }
    public function nuevo()
    {
 
        $data = ['titulo' => 'Agregar Categorias'];
        echo view('header');
        echo view('categorias/nuevo', $data);
        echo view('footer');
    }
 
    public function insertar()
    {
        if ($this->request->getMethod() == "post" && $this->validate(['cate' => 'required', 'barra' => 'required' ])){
            $this->categorias->save(['cate' => $this->request->getPost('cate'), 'barra' => $this->request->getPost('barra')]);
            return redirect()->to(base_url().'/categorias');
        }else{
            $data = ['titulo' => 'Agregar Categorias', 'validation' => $this->validator];
            echo view('header');
            echo view('categorias/nuevo', $data);
            echo view('footer');
        }
 
    }
 
    public function editar($codigo)
    {
 
        $categorias = $this->categorias->where('codigo',$codigo)->first();
        $data = ['titulo' => 'Editar Categorias', 'datos' => $categorias];
        echo view('header');
        echo view('categorias/editar', $data);
        echo view('footer');
    }
 
    public function actualizar()
    {
        $this->categorias->update($this->request->getPost('codigo'),['cate' => $this->request->getPost('cate'), 'barra' => $this->request->getPost('barra')]);
        return redirect()->to(base_url().'/categorias');
    }
 
    public function eliminar($codigo)
    {
        $this->categorias->update($codigo, ['activo' => 0]);
        return redirect()->to(base_url().'/categorias');
    }
    public function reingresar($codigo)
    {
        $this->categorias->update($codigo, ['activo' => 1]);
        return redirect()->to(base_url().'/categorias');
    }
}


No me elimina(Cambio de estado 0) el registro al escoger la opción si solo se presenta el cuadro de dialogo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema con eliminación de registros

Publicado por Alejandro (44 intervenciones) el 04/09/2023 16:42:37
Parece que estás teniendo un problema en tu controlador `Categorias` de CodeIgniter, específicamente en la función `eliminar`, donde no se elimina (cambio de estado a 0) el registro y solo se presenta el cuadro de diálogo. Aquí hay algunas sugerencias para resolver este problema:

1. Verifica las rutas:
Asegúrate de que las rutas en tu archivo de configuración de rutas (`app/Config/Routes.php`) estén configuradas correctamente. Verifica que la ruta para la función `eliminar` esté asociada al controlador `Categorias` y al método `eliminar`.

2. Verifica el enlace de eliminación:
En la vista, asegúrate de que el enlace que activa la eliminación tenga la URL correcta. Verifica que esté apuntando a la función `eliminar` en el controlador `Categorias` y que estás pasando el código correcto del registro que deseas eliminar.

3. Asegura que SweetAlert funcione:
Verifica que SweetAlert esté funcionando correctamente y que el código JavaScript asociado con el cuadro de diálogo de confirmación esté ejecutándose. Comprueba si hay errores de JavaScript en la consola del navegador.

4. Comprueba el evento de confirmación:
En el código JavaScript relacionado con SweetAlert y el cuadro de diálogo de confirmación, asegúrate de que estás manejando el evento de confirmación correctamente. Deberías estar realizando una solicitud HTTP (posiblemente una solicitud AJAX) para cambiar el estado del registro a 0 en la base de datos.

5. Verifica el modelo:
Asegúrate de que el modelo `CategoriasModel` tenga definido el campo `activo` y que estés actualizando ese campo correctamente en la función `eliminar` del controlador. Verifica que el campo `activo` esté configurado correctamente en la base de datos.

6. Depuración con `var_dump`:
Para depurar, puedes agregar `var_dump` en varias partes del código, como en la función `eliminar` del controlador, para ver si los datos y el flujo del programa son los esperados. Esto te ayudará a identificar cualquier problema en el proceso de eliminación.

7. Depuración de JavaScript:
Utiliza las herramientas de depuración del navegador para rastrear el flujo de ejecución del código JavaScript relacionado con SweetAlert y la eliminación. Esto te permitirá ver si el evento de eliminación se está desencadenando adecuadamente.

8. Manejo de excepciones:
En la función `eliminar`, considera agregar un manejo de excepciones para capturar cualquier error que pueda estar ocurriendo durante la actualización del registro. Esto te ayudará a identificar posibles problemas en la base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar