0

我有一个与会者名单,其中记录了谁填写了活动表格。每个表行都附加了一个删除按钮,以便管理员可以从数据库中删除一条记录。单击删除按钮时,我尝试将确认对话框(是/否)附加到表单。

在我附加 javascript 之前,它正在删除一条记录,但现在虽然对话框出现并且可以正常工作,但它并没有删除记录。这是我的代码:

<form id="attending" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <table class="attendees">
        <thead>
            <tr>
                <th class="name">Name</th>
                <th class="company">Company</th>
                <th class="email">Email</th>
                <th class="contact">Contact</th>
                <th class="day">Day</th>
                <th class="time">Time</th>
                <th class="delete">&nbsp;</th>
            </tr>
        </thead>
        <?php while ($row = mysql_fetch_assoc($result)) { ?>
            <tr>
                <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
                <td class="name"><?php echo $row['name']; ?></td>
                <td class="company"><?php echo $row['company']; ?></td>
                <td class="email"><?php echo $row['email']; ?></td>
                <td class="contact"><?php echo $row['contact']; ?></td>
                <td class="day"><?php echo $row['day']; ?></td>
                <td class="time"><?php echo $row['event-time']; ?></td>
                <td class="delete"><input type="submit" name="delete" class="delete-button" value="Delete"> </td>
            </tr>

    <?php if(isset($_POST['delete'])) { 
       $id = $_POST['id'];
       mysql_query("DELETE FROM `registered_blue` WHERE `id` = '$id' ");
       }
    ?>
  <?php } ?>
    </table>
</form>

这是我的jquery,如下:

var confirmDelete = $('<div></div>')
        .html('Record will be deleted! This operation can\'t be undone. <br />Are you sure?')
        .dialog({
            autoOpen: false,
            title: 'Attendee will be deleted! Please Confirm.',
            buttons: {"Yes": function() { 
                $(this).dialog("close"); 
                $('#attending').submit();
            }, "No": function() {
            $(this).dialog("close");
         }
         }
    });  
    $('.delete-button').on('click', function(e){
        e.preventDefault();
        $(confirmDelete).dialog('open');
    });

有人可以告诉我哪里出错了吗?谢谢

4

1 回答 1

0

当单击具有“删除按钮”类的任何内容时,以下脚本将弹出一个 JavaScript 对话框。如果用户单击“是”,应用程序将继续执行默认操作,如果用户单击“否”,应用程序将停止它应该做的任何事情。

$('.delete-button').click(function () {
    return window.confirm("Attendee will be deleted! Please Confirm.');
});

您也可以使用原始脚本执行此操作,如果您希望它继续执行默认操作,您唯一需要的就是返回 true,如果您希望它停止,则返回 false。

编辑:我认为应该这样做:

$('.delete-button').on('click', function(e){
    $('<div></div>')
    .html('Record will be deleted! This operation can\'t be undone. <br />Are you sure?')
    .dialog({
        autoOpen: false,
        title: 'Attendee will be deleted! Please Confirm.',
        buttons: {"Yes": function() { 
            var result = true;
            $(this).dialog("close"); 
        }, "No": function() {
            var result = false;
            $(this).dialog("close");
        }
    }
    return result;
});
于 2013-06-03T09:56:13.660 回答