如果不知道问题到底出在哪里,很难回答这个问题。deleteSong.php 工作正常吗?
就像其他人说的那样,您应该将输入类型更改为button
或从您的函数中返回 false,否则浏览器将尝试以正常方式提交表单,但由于您没有action
在<form>
标签中指定 an ,因此它将无法正常工作。
就个人而言,我会做完全不同的事情:
HTML:
<input type="button" value="<?php echo $id ?>" id="deleteButton">
Javascript:
$(document).ready(function () {
$('#deleteButton').click(function () {
var answer = confirm("Are you sure you want to delete this song?");
if (!answer) {
return false;
}
var data = 'id=' + $(this).val();
$.ajax({
type: 'POST',
url: 'deleteSong.php',
data: dataString,
success: function (response) {
// response will contain the output from your php script.
// Do something with it here. If you just want to see what it
// says, do something like:
console.log(response);
// then look in the console (view > javascript console in chrome)
}
});
});
});
只是为了解释我在这里做什么(对不起,如果我告诉你你已经知道的事情,我想对任何可能在未来阅读这篇文章的人尽可能明确:)
- 我将整个内容包含在其中,
$(document).ready(function() { ... } );
因此它仅在页面加载完成时运行,否则您最终可能会尝试将函数绑定到尚不存在的按钮上的单击操作。
if (answer !=0)
是多余的,你可以写成if (!answer)
任何正整数都会计算为true
- 我在
success
上面包含了一个回调,它可能会帮助您进行调试。
整个页面上是否只有一个“删除”按钮?还是每首歌曲旁边都会有一个删除按钮?如果是后者,则必须为每个按钮指定不同的 ID,而不仅仅是deleteButton
因为所有 ID 都必须是唯一的。
如果上述方法不起作用,您确定 jQuery 已正确加载吗?要检查,请jQuery
在控制台中输入,如果您没有收到错误,那么您很好。另一种可能性是您的deleteSong.php
脚本有问题,但我无法在没有看到它的情况下帮助您。