我在 ajax、控制器、模型和 javascript 和 jquery 代码中有这个删除功能,我试图用这个获取 id_category,当我按下删除时它告诉我该类别已被删除但它没有从我的数据表中删除也没有从我的数据库数据中,有谁知道问题出在哪里?在这里我留下我的代码。
`JavaScript:
$(document).on("click", ".btnEliminarCategoria", function() {
var id_categoria = $(this).attr("data-id");
var accion = $(this).data("accion");
Swal.fire({
title: '¿Está seguro de eliminar la categoría?',
text: "¡Si no lo está, puede cancelar la acción!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: '¡Sí, eliminar categoría!'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
type: "POST",
url: "ajax/categorias.ajax.php",
data: {
id_categoria: id_categoria,
accion: accion
},
dataType: "json",
async: false,
success: function(respuesta) {
console.log(respuesta);
if (respuesta == "ok") {
Swal.fire(
'¡Eliminado!',
'La categoría ha sido eliminada.',
'success'
)
}
},
error: function(xhr, status, error) {
console.log(xhr.responseText);
var errorMessage = xhr.status + ': ' + xhr.statusText
alert('Error - ' + errorMessage);
}
});
}
})
});
Ajax:
<?php
require_once "../controladores/categoriascontrolador.php";
require_once "../modelos/categoriasmodelo.php";
class AjaxCategorias{
public $idCategoria;
public $Categoria;
public $Descripcion;
public function ajaxEliminarCategoria(){
$id = $_POST["id_categoria"];
$accion = $_POST["accion"];
if($accion == 1){
$table = "categorias";
$nameId = "id_categoria";
$eliminar = CategoriasControlador::ctrEliminarCategoria($table, $id, $nameId);
echo json_encode($eliminar);
} else {
echo json_encode("error");
}
}
}
if(isset($_POST['accion']) && $_POST['accion'] == 1){
$eliminarProducto = new AjaxCategorias();
$eliminarProducto -> ajaxEliminarCategoria();
}
Controller:
public static function ctrEliminarCategoria($table, $id, $nameId){
$eliminar = CategoriasModelo::mdlEliminarCategoria($table, $id, $nameId);
return $eliminar;
}
Model:
static public function mdlEliminarCategoria($table, $id, $nameId){
$stmt = Conexion::conectar()->prepare("DELETE FROM $table WHERE $nameId = :$id");
$stmt -> bindParam(":".$nameId, $id, PDO::PARAM_INT);
if($stmt -> execute()){
return "ok";
}else{
$error = $stmt->errorInfo();
return "Error al eliminar la categoría: " . $error[2];
}
}`
我将不胜感激任何建议或帮助。