Metodo eliminar utilizando AJAX y PHP

Iniciado por padiuwu, 14 Junio 2020, 06:11 AM

0 Miembros y 1 Visitante están viendo este tema.

padiuwu

Tengo la siguiente situación estoy aprendiendo a utilizar ajax con php y tengo un problema con mi método eliminar al dar clic sobre el botón me dice que el registro ha sido eliminado pero no se elimina, espero alguien me pueda ayudar a solucionarlo, a continuación les anexo mi funcion del metodo eliminar.
Código (php) [Seleccionar]

                //ESTA ES MI FUNCION ELIMINAR
function Eliminar(datos){
d=datos.split('||');
$('#txtID').val(d[0]);
   $.ajax({
type: "POST",
url: "Eliminar.php",
cache: false,
data: datos,
error:function(){
$("#resultado").html("Error");
},
beforeSend:function(){
$("#resultado").html("Cargando...");

},
success: function(okay){
//Cargamos la tabla de nuevo para actualizar y desbloqueamos el boton de agregar nuevo
$('#tabla2').load('tabla.php');
   $("#resultado").html("Registro Eliminado");
}

});
}

Este es mi código eliminar (Eliminar.php)
Código (php) [Seleccionar]

<?php
require_once("conexion.php");
$link conectar();
$Id=$_POST['txtID'];
$query "DELETE FROM avion WHERE Id = '".$Id."";

echo 
$consulta=mysqli_query($link$query);

?>



y este es mi código de mi tabla.php donde se encuentra el botón Eliminar.
Código (php) [Seleccionar]

<?php
require_once("conexion.php");
$link conectar();
//Tuve que crear un archivo nuevo que solo contenga la tabla, así supongo que se nos hara más fácil a todos
//Ahora si podran encontar información al respecto :D, me disculpo por el otro metodo.
?>

<table>
<thead>
<th>ID</th>
<th>Nombre</th>
<th>Apellido</th>
<th>Pais</th>
<th>RFC</th>
<th>Editar</th>
<th>Eliminar</th>
</thead>
<tbody id="tbody">
<?php

//Ahora en el mismo Tbody hacemos la consulta para mostrar los registros
$query "SELECT * FROM avion";
$result=mysqli_query($link,$query);
while($row=mysqli_fetch_row($result)){
//Mientas la consulta se ejecuta vamos guardando en cada Boton de editar, un arreglo
//con la información del registro
$datos=$row[0]."||".
   $row[1]."||".
   $row[2]."||".
   $row[3]."||".
   $row[4]."||".
   $row[5];
   //El en el metodo onClick mandamos llamar la funcion AgregaEdit que tenemos en
   //el archivo Practica1.php y en el parametro le damos la cadena datos que
   //generamos aqui arriba.
 ?>


<tr>
<td><?php echo $row[0?></td>
<td><?php echo $row[1?></td>
<td><?php echo $row[2?></td>
<td><?php echo $row[4?></td>
<td><?php echo $row[5?></td>
<td>
<button type="button" name="btnEditar" id="btnEditar" onclick="agregaEdit('<?php echo $datos ?>')">Editar
</button>
</td>
<td>
//AQUI ESTA MI BOTON ELIMINAR
<button type="button" name="btnEliminar" id="btnEliminar" onClick="javascript:Eliminar('<?php echo $datos ?>')">Eliminar
</button>
</td>
</tr>
<?php
}
 ?>

</tbody>
</table>

Leguim

#1
Hola!

EDIT: (primero proba esto antes que nada)
Código (php) [Seleccionar]

// proba eso...
$query = "DELETE FROM avion WHERE Id = ".($Id);


No estoy muy afinado con todo ese script, tengo un método más simple que utilizo para estas cosas...

Si lo que estas intentando es eliminar un registro de la base de datos, entonces hasta donde yo puedo ver lo único necesario puede ser el id del registro... (igualmente podes usar la cantidad de datos que vos quieras)

digamos...

Código (php) [Seleccionar]

if(!empty($resultados) // si hay al menos un registro existente...
{
      foreach($resultados as $res) // recorro el arreglo que me devuelve la consulta
      {
            ?>
           <p>Registro ID: <?php echo($res['id']); ?></p> <button type="button" onclick="Eliminar_Dato(<?php echo($res['id']); ?>)"></button><br>
           <?php
       
}
}
else
{
     
?>

    <p>No hay datos encontrados.</p>
    <?php
}


Función javascript (ajax):
Código (javascript) [Seleccionar]

       function Eliminar_Dato(id_data)
{
$.ajax({
url: 'eliminar_registro.php',
type: 'POST',
dataType: 'html',
data: {id_data},

success: function()
{
$(document).ready(function()
{
// acá va lo que quieras, esto es cuando el archivo ajax deja de ejecutarse, es decir cuando la petición recibe una respuesta.
                                       });
}
})

.done(function(results)
{
$('body').append(results); // si expulsa código html podes cambiar body por tu elemento y append por html dependiendo lo que necesites... para el ejemplo lo dejo así
})
}
}


en el archivo ajax ahora...

Código (php) [Seleccionar]

<?php
require_once("conexion.php");
$link conectar();
$Id=$_POST['id_data'];
$query "DELETE FROM avion WHERE Id = '".$Id."";
 
echo 
$consulta=mysqli_query($link$query);
?>



De igual forma antes de probar el ejemplo que te dí, lo que haría sería cambiar...
Código (php) [Seleccionar]

<?php
require_once("conexion.php");
$link conectar();
$Id=$_POST['txtID'];
?>

<script>console.log(<?php echo($Id); ?>);</script>
<?php
$query 
"DELETE FROM avion WHERE Id = '".$Id."";
 
echo 
$consulta=mysqli_query($link$query);
?>



Abrí la consola del navegador, y mira que te aparece...