删除前确认消息

时间:2013-09-22 20:25:46

标签: javascript php jquery ajax

我想在删除文件之前进行确认。我的代码没有确认,就像这样工作

<form action="delete.php" method="get">
<table>
<?php 
    foreach ($files as $file) {
                   ?>
<tr>
        <td><?php echo $fajl['file_name'];?></td>
        <td><a href="delete.php?id=<?php echo $file['file_id'];?>"><img src="img/delete.png"/></a></td>
     </tr>
        <?php } ?> 
        </table>
    </form>

delete.php

的一部分
...if(isset($_GET['id'])){
   $id = $_GET['id'];
   $query = $pdo->prepare('DELETE FROM files WHERE file_id = ?');
   $query->bindValue(1, $id);
   $query->execute();
}
$files = $file->fetch_all();
...

当我点击删除图像文件时被删除。它工作得很好,但我希望在删除文件之前进行确认。我尝试用 Zebra对话框来添加 class =“delete”

<a href="delete.php?id=<?php echo $file['file_id'];?>"><img class="delete" src="img/delete.png"/></a>

和下一个代码

    <script>
    $(document).ready(function () {
$(".delete").bind("click", function (e) {
    e.preventDefault();
    var $this = $(this);
    $.Zebra_Dialog("Do you want to delete this file?", {
        type: "question",
        title: "Are you sure?",
        buttons: ['Yes', 'No'],
        onClose: function (caption) {
            if (caption == 'Yes') {
                $.ajax({
                    url: 'delete.php',
                    data: {
                        id: $this.data('id'),
                        success: function(data){
            alert("File deleted");
        }
                    }
               })
            }
        }
    })
});
});
    </script>

但它不起作用...... 附: 现在我看到 Zebra对话框有一个选项

'buttons':  [
                {caption: 'Yes', callback: function() { alert('"Yes" was clicked')}},
                {caption: 'No'},
            ]

是否有可能代替

callback: function() { alert('"Yes" was clicked')}

我打电话

delete.php?id=<?php echo $file['file_id']

1 个答案:

答案 0 :(得分:0)

您可以使用返回confirm('Message here')true的函数false

$(document).ready(function () {
    $(".delete").bind("click", function (e) {
        e.preventDefault();
        if (window.confirm('Are you sure?'))
        {
            // .. ajax call ..
        }
    });
});

修改

您的ajax调用中存在语法错误。

$.ajax({
    url: 'delete.php',
    data: { id: $this.data('id') },
    success: function(data){
        alert("File deleted");
    }
});

此外,还没有$this.data('id'),所以在HTML中:

<a data-id="<?= $file['file_id'] ?>" class="delete"><img src="img/delete.png"/></a>