POST方法在JQuery中不起作用

时间:2012-12-10 15:07:10

标签: jquery ajax post

对于已经在SO上多次询问过的问题发表的道歉,但是我已经经历了很多这样的问题,但仍然无法解决我自己的问题。

我有一个索引页面,'index.php'带有一个JQuery脚本,用于在同一目录中将ID号发布到'delete.php'。然后'delete.php'应该从MySQL数据库中删除与该ID号匹配的行。 'index.php'还应该从HTML中删除已删除的项目。

最后一点,从HTML中删除项目,但是,虽然我在错误控制台中得到“200 OK”响应,但'delete.php'什么也没做 - 我已经检查了echo语句而没有运行。

CODE 的index.php:

<!DOCTYPE html>
<html>
    <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js">    </script>
        <script>
            jQuery(document).ready(function(){
                $(".deleteitem").click(function(){
                    var parent = $(this).closest('tr');
                    var id = parent.attr('id');
                    $.ajax({
                        type: "POST",
                        URL: "delete.php",
                        data: "id=" +id,
                        success: function(data){
                            $('#'+id).remove();
                        }
                    });
                });
            });
        </script>
    </head>
    <body>
        <table>
            <tr id="1">
                <td>Milk</td>
                <td>3.99</td>
                <td><button class="deleteitem"><img src="deletebutton.gif"></button></td>
            </tr>
            <tr id="2">
                <td>Bread</td>
                <td>1.99</td>
                <td><button class="deleteitem"><img src="deletebutton.gif"></button></td>
            </tr>
        </table>
    </body>
</html>

delete.php:

        <?php

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("tryit") or die(mysql_error());

$id = $_POST[id];

echo "DELETE.PHP HAS RUN<br>";

echo "ID = $id";

if (isset($id)) {
    $query = "DELETE FROM tryit WHERE id = '$id'";
    mysql_query($query) or die('Error, query failed');
}

?>

任何关于为什么这不太合理的线索 - 这是我的坚果!

3 个答案:

答案 0 :(得分:1)

在PHP脚本中,您需要$_POST[id]而不是$_POST['id']

对于数据,jQuery需要一个对象或一个查询字符串。你正在传递一个查询字符串,所以应该没问题。

答案 1 :(得分:0)

尝试

$.ajax({
    type: "POST",
    url: "delete.php",
    data: {id: id},
    success: function(data){
       $('#'+id).remove();
    }
});

url 应为小写!

答案 2 :(得分:0)

解决:

问题不在于jquery(除了'url:'的区分大小写,这是一个错字)。

问题出在sql查询中。我有

$sql = "DELETE * FROM tryit WHERE id = '$id'"; 

当然它应该是

$sql = "DELETE FROM tryit WHERE id = '$id'"; 

(没有*)。