0

在我的应用程序中,结果显示为表格格式。

我的部分代码是,

{% for device in devices %}
  <tr>
    <td>{{ device.operator}}</td>
    <td>{{ device.state }}</td>
    <td>{{ device.tstampgps }}</td>
    <td><button id='rec_delete'>Delete</button></td>

  </tr>
{% endfor %}

即使我们按下删除按钮,我也需要从数据库中删除特定记录。在此之前,我想为此提示一个确认框。谁能帮我?

4

4 回答 4

1

由于我不了解 Django,因此这不包括删除部分,我假设您将对其进行 AJAXify(执行异步请求以删除)。我还在此处将$devicesand$deletes变量分别显示为局部变量,或多或少,这样您就可以看到如何存储引用然后从这些引用中工作(我认为这比一遍又一遍地重新选择更好)。

还要注意使用:

jQuery(document).ready(function r($){

jQuery()在全局范围内使用,在更大的应用程序中,您应该始终这样做,以免与可能使用的其他库/框架发生冲突$()。这也是一种最佳实践,您可以$()在该匿名函数(闭包)中使用。最好习惯这种方式,IMO。

<table>
    <thead>
        <tr>
            <th>Operator</th>
            <th>State</th>
            <th>T-Stamp GPS</th>
            <th>&nbsp;</th>
        </tr>
    </thead>
    <tbody>
        <tr class="device">
            <td>Verizon</td>
            <td>OK</td>
            <td>033830928</td>
            <td>
                <button type="button" id="d001" class="delete">Delete</button>
            </td>
        </tr>
        ...
    </tbody>
</table>

笔记

我做了一个微小但重要的更改,参考$self,因为 AJAX 将在超出范围success后运行处理程序:this

jQuery(document).ready(function r($){
    var $devices = $('tr.device'),
        $deletes = $devices.find('button.delete');

    $deletes.click(function d(){
        var $self = $(this).parents('tr.device'),
            del = confirm('Delete device?');

        if (del) {
            // Do $.ajax() request, maybe using the 
            // clicked button's ID. Or you could put
            // the row to delete ID on the TR element.
            // And then on success of the AJAX, run:
            $self.fadeOut(500, function f(){
                $self.remove();
            });
        }
    });
});​

http://jsfiddle.net/wMqr8/2

于 2012-10-20T14:36:00.013 回答
1

将可以与 DB 关联到按钮的唯一记录标识符添加。确认后,您使用 AJAX 将此标识符发送到服务器,并且服务器代码会删除数据库。还要在重复元素上将 ID 更改为类,因为 ID 必须是唯一的

HTML

<tr>
    <td>{{ device.operator}}</td>
    <td>{{ device.state }}</td>
    <td>{{ device.tstampgps }}</td>
    <td><button class='rec_delete'  data-record_id="{{ device.DB_ID }}">Delete</button></td>

  </tr>

JS

$('button.rec_delete').click(function(){
     /* data() method reads the html5 data attribute from html */
     var record_id=$(this).data('record_id');

     if( confirm( 'Are you sure') ){
        $.post( 'serverPage.php', { id: record_id}, function(){
            /* code to run on ajax success*/
          $(this).closest('tr').remove();
        })
    }
})

id服务器将像使用任何其他表单元素名称一样接收 post 键

于 2012-10-20T14:47:27.947 回答
0

您可以在 JavaScript 中添加点击事件,如果用户选择“确定”按钮,您可以向视图发送请求以删除记录或其他任何内容

于 2012-10-20T14:11:33.140 回答
0

试试这个:

<button id='rec_delete' onclick="return confirm('Are you sure?')">Delete</button>
于 2012-10-20T14:22:47.140 回答