я хочу удалить строку данных в моем 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.
<?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 -->
Пара вещей:
console.log()
вместо alert()
(IMO)F12
в Google Chrome) вы видели какие-либо ошибки консоли, когда ваш код работает?$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, ваш запрос никогда не достигает сервера или сервер отвечает с ошибкой.