-1

当用户单击删除时,我需要制作一个 jQuery 来提醒“你确定要删除”。我一直在尝试很多但没有找到任何解决方案。

这是我的 deletemovie.php

<?php
require('../system/initialize.php'); //load the connection file
?>

<html><script src="../js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        $(".delete").click(function () {
            if ( !confirm('Are you sure you want to delete?') ) {
                return false;
            } else {
                $.ajax({
                    url: "deletemovie.php",
                    data: {movie_id},
                    type: 'get',
                    async: false,
                    success: function(result) {
                        if( result.success ) {
                            alert("You have successfully deleted");
                        }
                    }
                })
            }
        })
     )
</script>
</html>

<?php
$movie_id=$_GET['movie_id'];
$insert_user=mysql_query("DELETE  FROM `movie` WHERE `movie_id` ={$movie_id}");
if($insert_user)
{ echo "DELETED";}
else
{ echo "error in registration".mysql_error(); }
?>

当然,在我的列表页面中,我做了:

  echo "<a class='delete' href='deletemovie.php?movie_id={$movie_id}'>". delete .'</a><br/></td>';
4

2 回答 2

1

我在您的代码中看到至少 3 个问题:

1.要使您的确认上升,您需要停止通常的锚点点击处理。这可以这样做:

$(".delete").click( function( event ) {
  event.preventDefault();
  if( !confirm( 'Are you sure you want to delete?' ) ){
    return false;

2.下一个你会遇到的麻烦,但是你这里没有描述的是你通过ajax发送的一个数据。它指定不正确。在我看来,在您的情况下,根本不需要指定数据,因为所有数据都已经存在于您的 url 中(这意味着它将作为 GET 发送)。您只需要获取href链接的属性。

$(function () {
    $(".delete").click(function ( event ) {
        event.preventDefault();
        if (!confirm('Are you sure you want to delete?')) {
            return false;
        } else {
            var url = $( event.target ).attr( 'href' );
            $.ajax({
                url: url,
                async: false,
                success: function (result) {
                    if (result.success) {
                        alert("You have successfully deleted");
                    }
                }
            });
        }
    });
});

3.最后一个麻烦是没有人给你一份工作,因为没有人想得到这样一个不受保护的代码。你永远不应该相信你从客户那里收到的任何东西。你可以肯定,一旦有人会利用你留下的一个洞,就会毁了你的名声。我的意思是您的代码的这一部分:

$movie_id=$_GET['movie_id'];
$insert_user=mysql_query("DELETE  FROM `movie` WHERE `movie_id` ={$movie_id}");

关于我正在谈论的风险的一些事情: http ://en.wikipedia.org/wiki/Sql_injection

于 2013-05-02T20:38:04.883 回答
0

您缺少一些分号和括号。并且应该对ajax调用的数据参数进行更正。只需使用以下代码,它将为您工作

http://jsfiddle.net/n7v5w/

$(function () {
    $(".delete").click(function () {
        if (!confirm('Are you sure you want to delete?')) {
            return false;
        } else {
            $.ajax({
                url: "deletemovie.php",
                data: {
                    'movie_id': <id of the movie>
                },
                type: 'get',
                async: false,
                success: function (result) {
                    if (result.success) {
                        alert("You have successfully deleted");
                    }
                }
            });
        }
    });
});

注意:您必须将 替换为<id of the movie>您要删除的电影的实际 id

于 2013-05-02T20:10:23.973 回答