我想删除一行数据在我的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
在谷歌Chrome)你看到任何控制台错误时,你的代码运行? - 你的代码很容易受到SQL注入,你可能会想看看PHP的PDO与你的数据库交互 你的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的$.ajax
的信息可以在这里找到
我的"最佳猜测"是一个格式错误的AJAX请求,您的请求从未到达服务器,或者服务器响应错误。