发布ajax无法正常工作

时间:2013-06-24 12:11:25

标签: javascript jquery ajax forms submit

所以我有一个这样的表格:

 <form>
     <input type="submit" value="X" id="deleteButton" onclick="ConfirmChoice(<?php echo $id; ?>)" />
 </form>

和这样的函数:

<script type='text/javascript'>
function ConfirmChoice(theid) 
{ 
    var dataString = 'id=' + theid;
    answer = confirm("Are you sure you want to delete this song?");
    if (answer !=0) {
        $.ajax
        ({
            type: "POST",
            url: "deleteSong.php",
            data: dataString,
        });
    } 
}

</script>

所以基本上我希望它删除他们从我的数据库中点击的任何deleteSong将要处理的内容。 它给出了歌曲的id,据我所知应该确认删除然后将其删除吧? 任何帮助,将不胜感激。 感谢

3 个答案:

答案 0 :(得分:1)

更改它

input type="submit"

input type="button"

答案 1 :(得分:0)

另外因为你没有设置它,对服务器的请求是在json中,在你的情况下,这个请求很糟糕。

尝试这样的事情:

 var dataString = "{'id'= '"+ theid + "'}";

这应该使它工作:)

答案 2 :(得分:0)

如果不知道问题究竟在哪里,很难回答这个问题。 deleteSong.php是否正常工作?

与其他人一样,您应该将输入类型更改为button或从函数返回false,否则浏览器将尝试以正常方式提交表单,但是您没有指定{{1在action标记内,它无法正常工作。

就个人而言,我会做的事情完全不同:

<强> HTML:

<form>

<强>使用Javascript:

 <input type="button" value="<?php echo $id ?>" id="deleteButton">

只是为了解释我在这里所做的事情(对不起,如果我告诉你你已经知道的事情,我希望尽可能明确地告诉那些将来可能正在读这篇文章的人:)

  • 我将整个内容包含在 $(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回调,可以帮助您进行调试。

整个页面上只有一个'删除'按钮吗?或者每首歌旁边都会有一个删除按钮?如果是后者,则必须为每个按钮指定一个不同的ID,而不仅仅是success,因为所有ID都必须是唯一的。

如果上述方法不起作用,您确定jQuery已正确加载吗?要检查,在控制台中键入deleteButton,如果没有收到错误,那么你没事。另一种可能性是你的jQuery脚本出了问题但我没有看到它就无法帮助你。