0

我目前正在尝试使用 AJAX 从我的 MySQL 数据库中删除信息,但由于某种原因,该请求甚至没有发送到我指定的 ajax url。

这是正在发送的代码:

<script type="text/javascript"> // Notes Delete
    $(document).ready(function(){
        $("form#RemoveNote2").submit(function() {
            var ID = $('#ID').attr('value');
                $.ajax({
                    type: "POST",
                    url: "ajaxdeleteinvoicenote.php",
                    data: "id="+ ID,
                    datatype: "json",
                    success: function(result){
                        alert('test');
                    }
                });
            return false;
        });
    });
</script>

这是它发送的表格:

<form id="RemoveNote2" style="margin: 0px; padding:0px;" method="post">
  <span style="width:80%; display:inline-block;">Test</span>
  <span style="text-align: center; width: 10%; display:inline-block;">
    <input id="ID" type="hidden" value="39">
    <button class="close" type="submit">×</button>
  </span>
</form>

使用一个名为 Fiddler2 的工具,我注意到它甚至没有完成发送到 ajaxdeleteinvoicenote.php 的任务。任何想法为什么?

4

6 回答 6

1

您的数据不是 JSON 格式的。尝试删除参数数据类型:“json”

祝你今天过得愉快

于 2012-05-14T11:13:56.867 回答
0
 $(document).ready(function(){
        $("form#RemoveNote2").submit(function() {
                //e.preventDefault();

                $.ajax({                   
                    url: "/ajaxdeleteinvoicenote.php", type: "POST", dataType: "json",
                    data: { id : $(this).find('#ID').val() },                        
                    success: function(result){
                        alert(result);
                    }
                });
            return false;
        });
    });
于 2012-05-14T12:00:02.870 回答
0

请注意它不是 datatype: "json",

它的 dataType: "json",

也...而不是使用..

var ID = $('#ID').attr('value');

用这种方式很好...

 var ID = $('#ID').val();

我想这会解决..

于 2012-05-14T11:13:27.607 回答
0

您发送它时将datatype选项设置为 JSON,而实际数据是 form-urlencoded:data: "id="+ ID,在 JSON 中将读取{"id":"123"}. 您最好放弃数据类型(jQuery 足够聪明,可以弄清楚如何正确发送数据)并删除 'id=' 位,{id:$('#ID').value}按原样发送。

使用 jQuery 时对象不需要 JSON.stringified

于 2012-05-14T11:13:51.477 回答
0

尝试使用 Mozilla firebug 并检查包含的 jQuery 版本。您的代码对我来说工作正常。

<script src="http://code.jquery.com/jquery-latest.js"></script>
<form id="RemoveNote2" style="margin: 0px; padding:0px;" method="post">
  <span style="width:80%; display:inline-block;">Test</span>
  <span style="text-align: center; width: 10%; display:inline-block;">
    <input id="ID" type="hidden" value="39">
    <button class="close" type="submit">X<button>
  </span>
</form>

<script type="text/javascript"> // Notes Delete
    $(document).ready(function(){
        $("form#RemoveNote2").submit(function() {
            var ID = $('#ID').val();
                $.ajax({
                    type: "POST",
                    url: "ajaxdeleteinvoicenote.php",
                    data: "id="+ ID,
                    datatype: "json",
                    success: function(result){
                        alert(result);
                    }
                });
            return false;
        });
    });
</script>

在“ajaxdeleteinvoicenote.php”中添加以下行。

<?php
echo $_POST['id'];die;
?>
于 2012-05-14T11:37:11.213 回答
0

您是否将 ajaxdeleteinvoicenote.php 和发送内容的页面放在同一个文件夹中?
还要从最后一个属性中删除逗号(,),例如:

 datatype: "json"
于 2012-05-14T12:47:11.700 回答