Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

89
Vistas
La publicación Bootbox Ajax está vacía en la función de devolución de llamada

Soy nuevo en la codificación y estoy tratando de crear un botón para usar bootstrap 5 para eliminar un cliente de una base de datos sql.

Estoy usando tablas de datos y el botón se forma así:

 <li><button class="dropdown-item testing" name= ' + item.client_id + ' aria-label="delplan" type="button"><i class="far fa-trash-alt styleicon"></i>Verwijder</button></li>

Estoy usando el siguiente script para recuperar para abrir el modal con bootbox y obtener la ID de la etiqueta de nombre en mi botón.

 $(document).ready(function(){ var table = $('#clientTable').DataTable(); $("#clientTable").on("click", ".testing", function () { var id = $(this).attr('name'); console.log(id); // this is correctly showing the id in the console ! bootbox.confirm({ title: "Verwijder client?", message: "Weet je zeker dat je deze client wilt verwijderen van de database?", buttons: { cancel: { label: '<i class="fa fa-times"></i> Cancel' }, confirm: { label: '<i class="fa fa-check"></i> Confirm' } }, callback: function (result) { var id = $(this).attr('name');// the post is empty and the console says undefined, so tried to get it here to, but still undefined. var p = loadPrompt(); if(result === false){ console.log('clicked no: ' + id); // console log clicked no undefined.. p.inform('Client is niet verwijderd!'); } else{ console.log('clicked yes: ' + id); // console log clicked yes undefined.. $.ajax({ type: "POST", url: "client_delete_client.php", data: {id: id}, // post request is happening in network tab but no data is send?? success: function(data) { $('#clientTable').DataTable().ajax.reload(); p.success('Client is succesvol verwijderd! '); }, error: function(xhr, status, error) { alert("ERROR : Something went wrong! Try again our contact the database administrator" + error); p.error('Fout in het verwijderen van client !'); } }); } } }); }); }); </script>

No entiendo por qué mi secuencia de comandos no publica la var id en la url client_delete_client.php después de que el cliente hizo clic en Sí. Espero que haya alguien aquí que pueda ayudarme. ¿Porque la identificación se registra en la consola al principio, pero después de eso no está definida?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema es uno de alcance de JavaScript. Dentro de su función de devolución de llamada, this se refiere a otra cosa, probablemente la función de devolución de llamada en sí, pero un console.log(this) lo confirmaría.

La solución es crear una referencia a su botón justo después del evento de clic:

 $("#clientTable").on("click", ".testing", function () { const btn = this; }

luego consulte btn en otra parte de su código

 const id = $(btn).attr('name');

Le recomiendo que lea un poco sobre el alcance en JavaScript, particularmente sobre cómo afecta this variable (pero también otras variables) porque es algo que hace tropezar a muchos desarrolladores.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda