【问题标题】:The best way to delete printed results from the database [closed]从数据库中删除打印结果的最佳方法[关闭]
【发布时间】:2016-03-20 10:29:13
【问题描述】:

我有一个关于安全删除数据库中的行的问题。 例如,我有一个行数组并打印它。看起来像这样。

text 1 - delete
text 2 - delete
text 3 - delete
...
text n - delete

文字信息后面有一个删除链接。我的问题是当用户单击删除以删除此记录时,最好的方法是什么。我听说要在文本信息的实际ID上设置链接href:

<a href=?toDelete=1>delete</a>

当用户点击链接时,我可以通过 _GET 获取它,然后我可以通过 ID 删除该行。我认为这根本不是最佳做法,如果是,请告诉我。顺便说一句,我使用的是 Laravel 框架,那么有什么选项可以使用一些内置函数吗?我将不胜感激。

【问题讨论】:

    标签: php mysql laravel post get


    【解决方案1】:

    一种方法是在表单中使用按钮或链接:

    <form action="{{ URL::route('texts.destroy', $id) }}" method="POST">
        <input type="hidden" name="_method" value="DELETE">
        <input type="hidden" name="_token" value="{{ csrf_token() }}">
        <button>Delete text</button>
    </form>
    

    或者,如果你使用 Laravel 集合表单:

    {!! Form::open(array('method' => 'Delete', 'route' => array('texts.destroy', $id))) !!}
        <button class="btn-xs btn-danger">Delete text</button>
    {!! Form::close() !!}
    

    或者使用 Ajax:

    $.ajax({
        url: '/texts/1',
        type: 'DELETE',
        success: function(result) {
            // Do something
        }
    });
    

    【讨论】:

    • 好的,如果我得到例如 50 个查询结果,每个链接需要 50 个表单?
    • 为什么不呢?它不会对网站性能产生太大影响。另外,如果你想加快速度,你可以使用 Ajax。
    • 好的,非常感谢。
    • 我已经用 Ajax 代码更新了我的帖子。只需使用变量而不是硬编码 1 文本 id,如果您当然会选择 ajax 方式。
    • 我不知道如何从 ajax 执行 sql delete 查询。我认为这是不可能的,但我可以将它传递给 php 代码,但是如何?你能告诉我使用的例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多