Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2022, 21:20
Avatar de detective_jd
detective_jd
 
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años, 1 mes
Puntos: 6
Realizar llamada a controlador mediante AJAX

Buenas a todos, ando con una consulta para hacerles, resulta que estoy haciendo una llamada ajax a un controlador php para evitar que se abran 2 páginas para hacer un alta y la verdad nunca usé ajax hasta ahora, pero intento y no consigo nada, le hago click en el botón "Aceptar" y no se inmuta para nada.
Pongo el código

DepartamentosController.php
Código PHP:
Ver original
  1. public function add(){
  2.         if(isset($_POST["btnaceptar"])){
  3.             try {
  4.                 $entity = $this->createEntity();
  5.                 $entity->create();
  6.                 Session::set("msg",Session::msgSuccess("Departamento Creado"));
  7.                 header("Location:index.php?c=departamentos&a=index");
  8.                 exit();                    
  9.             } catch (\Exception $ex) {
  10.                 Session::set("msg",Session::msgDanger($ex->getMessage()));                  
  11.             }
  12.         }
  13.        
  14.         $this->redirect("add.php");
  15.     }

Departamentos/index.php
Código PHP:
Ver original
  1. <h3><i class="fa fa-angle-right"></i>&nbsp;Mantenimiento de Departamentos</h3>
  2. ......
  3.     <!-- Modal -->
  4. <div class="modal fade" id="AMModal" aria-hidden="true">
  5.     <div class="modal-dialog modal-dialog-centered">
  6.         <div class="modal-content">
  7.             <form id="AMDocumento" method="post">
  8.                 <div class="modal-header">
  9.                     <h3 class="modal-title">
  10.                         <i class="fa fa-angle-right"></i>&nbsp;Crear Departamento
  11.                     </h3>
  12.                     <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  13.                 </div>
  14.                 <div class="modal-body">        
  15.                     <div class="form-group">
  16.                         <label class="col-form-label">Nombre (*):</label>                      
  17.                         <input type="text" name="txtnombre" id="nombre" class="form-control" autofocus="autofocus" required="required" />                        
  18.                     </div>                
  19.                 </div>
  20.                 <div class="modal-footer">
  21.                     <input type="hidden" name="hid" id="id" value="0" />
  22.                     <button
  23.                         type="submit"
  24.                         name="btnaceptar"
  25.                         value="Aceptar"
  26.                         id="aceptar"
  27.                         class="btn btn-success"
  28.                     >
  29.                         <i class="fa fa-check"></i>&nbsp;Aceptar
  30.                     </button>
  31.                     <button
  32.                         type="button"
  33.                         name="btncancelar"
  34.                         value="Cancelar"
  35.                         class="btn btn-danger"
  36.                         data-bs-dismiss="modal"
  37.                     >
  38.                         <i class="fa fa-times"></i>&nbsp;Cancelar
  39.                     </button>
  40.                 </div>
  41.             </form>            
  42.         </div>        
  43.     </div>
  44.   </div>
  45. </div>
  46. <script src="Public/js/crud/departamento.js"></script>

departamento.js
Código PHP:
Ver original
  1. $(function() {
  2.     $('#AMDocumento').submit(function(e) {
  3.         e.preventDefault();
  4.        
  5.         $.ajax({
  6.             type:'POST',
  7.             url:'index.php?c=departamentos&a=add',
  8.             data: $('#AMDocumento').serialize(),
  9.             dataType: 'json',
  10.             success: function(dataResult){
  11.                 var result = JSON.parse(dataResult);
  12.                 if(result.statusCode===200){
  13.                     $('#AMDocumento').hide();
  14.                 }
  15.             }
  16.         });
  17.     });
  18. });

Necesito su ayuda para ver cómo hacer andar los ajax.
Espero sus respuestas y saludos.
__________________
Si te interesa, visita mi perfil de Linkedin. Gracias