Я делаю Ajax для удаления файла, но когда я делаю так, мой скрипт всегда работает успешно, когда он должен ввести ошибку ... Я не понимаю, что происходит, с onlt php / html выводит мне предупреждениено с помощью ajax t скажи мне успех: (
Если это может быть полезной информацией: я использую архитектуру MVC, моя база данных подключена к PDO, а в менеджере классов мой запрос также находится в менеджере, все работает, еслиЯ использую php, с Ajax все идет не так.
Здесь моя попытка jQuery 1-й путь:
$('.ButtonDelete').on('click', function() {
let id= $(this).val();
let code=$('#code'+id).val();
let confimation = confirm("Are you sure you want to delete " + code + "?");
if (confimation==true){
req = $.ajax({
url: "menu.php?Option=deleteIgr",
type : 'POST',
data : { code : code },
error(xhr,status,error) {
console.error("An error occurred: " + status, error);
},
success(result,status,xhr) {
var error = (typeof(result.error) !='undefined' && result.error!=null) ? result.error : null;
if(error){
alert("this element cannot be delete" + error);
}
else {
console.log("Deleted with success");
$('#row'+id).remove();
}
}
});
здесь моя попытка jQuery 2-й способ:
$('.ButtonDelete').on('click', function() {
let id= $(this).val();
let code=$('#code'+id).val();
let confimation = confirm("Are you sure you want to delete " + code + "?");
if (confimation==true){
req = $.ajax({
url: "menu.php?Option=deleteIgr",
type : 'POST',
data : { code : code }
});
req.done(function (response, status, jqXHR){
var error = (typeof(response.error) !='undefined' && response.error!=null) ? response.error : null;
if(error){
alert("this element cannot be delete" + error);
}
else {
console.log("Deleted with success");
$('#row'+id).remove();
}
});
req.fail(function (jqXHR, status, err){
console.error("An error occurred: " + status, err);
});
}
});
здесь мойphp, который выполняет ajax:
try {
//my code before
case "deleteIgr":
require("Class/Ingredient.php");
require("Class/IngredientsManager.php");
$data = array ('code'=> $_POST['code'],'name'=>$_POST['name']);
$deleterIngredient = new IngredientsManager;
$deletedIngredient=$deleterIngredient->deleted(new Ingredient($data));
break;
//my code after
}
catch(Exception $e) {
$result['error'] = $e->getMessage();
echo $result['error'];
}
для большей точности: здесь PHP, где мой jquery берет данные:
<?php foreach($ingredients as $object)
{ ?>
<form method="post" >
<div id=<?='row'.$object->code()?> class="grid">
<span><input type="text" id=<?='code'.$object->code()?> class="cellCode" name="code" value=<?=$object->code()?> readonly></span>
<span><input type="text" id=<?='name'.$object->code()?> class="cellName" name="name" value=<?=$object->name()?>></span>
<span><button id=<?=$object->code()?> class="ButtonEdit" type="button" ></button></span>
<span><button class="ButtonDelete" type="button" value=<?=$object->code()?>></button></span>
</div>
</form>
<?php } ?>
, а также мое соединение в PDO сделано для показа ошибки в предупреждении:
$db = new PDO('sqlsrv:Server=####;Database=####', $this->_user, $this->_password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
Когда это успех на самом деле, проблем нет, но он также возвращает успех, когда t не удаляет объект, когда я ожидаю, что он выдаст мне предупреждение, возвращающее php (мой php, я думаю, работаетпотому что если я попробую с из рОст эхо он посылает мне предупреждение, когда он не удаляет данные.