0

很抱歉发布一个已经在 SO 上多次被问过的问题,但我已经经历了许多这些问题,但仍然无法解决我自己的问题。

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

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

代码索引.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>

删除.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');
}

?>

任何关于为什么这不起作用的线索都非常感谢 - 这让我很生气!

4

3 回答 3

1

在您的 PHP 脚本中$_POST[id],您需要使用$_POST['id'].

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

于 2012-12-10T15:11:50.920 回答
0

Try

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

url should be lowercase!

于 2012-12-10T15:23:19.977 回答
0

解决了:

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

问题只是在 sql 查询中。我有

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

而当然应该是

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

(没有 *)。

于 2012-12-10T23:16:31.360 回答