jquery — удалить данные в sql используя ajax и php в XDK

я хочу удалить строку данных в моем sql, когда кнопка удаления нажата в xdk. Я искал некоторые коды, но все еще не удаляю данные.

это файл php (delete.php)

<?php
include('dbcon.php');

$foodid = $_POST['foodid'];

$query = "DELETE FROM menu WHERE id ='$foodid'";
$result=mysql_query($query);

if(isset($result)) {
echo "YES";
} else {
echo "NO";
}
?>

а теперь вот мой код ajax.

$("#btn_delete").click( function(){
alert("1");

var del_id = $(this).attr('foodid');
var $ele = $(this).parent().parent();

alert("2");

$.ajax({
type: 'POST',
url: 'http://localhost/PHP/delete.php',
data: { 'del_id':del_id },
dataType: 'json',
succes: function(data){
alert("3");
if(data=="YES"){
$ele.fadeOut().remove();
} else {
alert("Cant delete row");
}
}
});
});

Как вы можете видеть, я разместил оповещения, чтобы знать, обрабатывает ли мой код, когда я запускаю программу в xdk. он предупреждает только до alert("2"); , и не продолжая до 3. поэтому я предполагаю, что мой AJAX здесь не та часть. Я вроде новичок с AJAX.

3

Решение

                            <?php
$sqli= "*select * from temp_salesorder *";
$executequery= mysqli_query($db,$sqli);
while($row = mysqli_fetch_array($executequery,MYSQLI_ASSOC))
{
?>

//"class= delbutton" is use to delete data through ajax

<a href="#" **id =<?php echo $row['transaction_id']; ?>** class="**delbutton**" title="Click To Delete"><button> Cancel</button></a>





<!-- language: lang-js -->

//Ajax Code
<script type="text/javascript">
$(function() {


$(".delbutton").click(function(){

//Save the link in a variable called element
var element = $(this);

//Find the id of the link that was clicked
var del_id = element.attr("id");

//Built a url to send
var info = 'id=' + del_id;

$.ajax({
type: "GET",
url: "deletesales.php",
data: info,
success: function(){

}
});
$(this).parents(".record").animate({ backgroundColor: "#fbc7c7" }, "fast")
.animate({ opacity: "hide" }, "slow");



return false;

});

});
</script>

//deletesales.php

<?php
$db_host        = 'localhost';
$db_user        = 'root';
$db_pass        = '';
$db_database    = 'pos';
$db = mysqli_connect($db_host,$db_user,$db_pass,$db_database);
$id=$_GET['id'];  <!-- This id is get from delete button -->


$result = "DELETE FROM temp_salesorder WHERE transaction_id= '$id'";
mysqli_query($db,$result);

?>



<!-- end snippet -->
2

Другие решения

Пара вещей:

  1. Вы должны тестировать, используя console.log() вместо alert() (IMO)
  2. Если вы откроете консоль (F12 в Google Chrome) вы видели какие-либо ошибки консоли, когда ваш код работает?
  3. Ваш код подвержен SQL-инъекция, вы, вероятно, захотите посмотреть на PHP PDO взаимодействовать с вашей базой данных.
  4. Правильно ли работает ваш PHP-файл, если вы измените:

$foodid = $_POST['foodid'];

к

$foodid = 1

Если номер 4 работает, проблема в вашем JavaScript. Используйте рекомендации в номерах 1 и 2 для дальнейшей диагностики проблемы.

Обновить:

Расширять. Есть несколько причин, по которым ваш третий alert() не будет стрелять Наиболее вероятно, что вызов AJAX не был успешным (обработчик успеха вызывается, только если вызов AJAX успешен). Чтобы увидеть ответ в случае ошибки или сбоя, вы можете сделать следующее:

$.ajax({
url: "http://localhost/PHP/delete.php",
method: "POST",
data: { del_id : del_id  },
dataType: "json"})
.done(function( msg ) {
console.log(msg);
})
.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});

Больше информации о AJAX и jQuery’s $.ajax может быть нашел здесь

Моя «лучшая догадка» — плохо отформатированный запрос AJAX, ваш запрос никогда не достигает сервера или сервер отвечает с ошибкой.

1

По вопросам рекламы [email protected]