【问题标题】:Laravel, multiple checkbox for delete and button edit in the same viewLaravel,在同一视图中用于删除和按钮编辑的多个复选框
【发布时间】:2020-06-07 14:40:19
【问题描述】:

我必须在同一个视图中插入一个编辑按钮和多个复选框来删除数据库中的记录。编辑按钮仅适用于第一条记录,即使我检查多个选项,复选框也仅适用于最后一条记录。如果单独有编辑按钮或删除复选框而不是一起使用,则这些功能有效。

@isset($lista)
<table>
    <th>Lista degli utenti Staff: </th>
    <tr>
        <td> Nome </td>
        <td> Cognome </td>
        <td> Username </td>
        <td> Modifica </td>
        <td> Elimina </td>
        @foreach ($lista as $staff)
        <tr>
        <td>{{$staff->nome}} </td>
        <td> {{$staff->cognome}} </td>
        <td> {{$staff->username}} </td>
        <td>
            {{ Form::open(array( 'route'=> ['modificastaff', $staff->id],'method'=>'post')) }}
            {{ Form::submit('Modifica') }}
            {{ Form::close() }}
        </td>
        <td>
            {{ Form::open(array( 'route'=> ['eliminastaff'],'method'=>'post')) }}
            {{ Form::checkbox('checked[]', $staff->id) }}
        </td>
    </tr>
    @endforeach
{{ Form::submit('Elimina') }}  
{{ Form::close() }}
</table>  
@endisset

【问题讨论】:

  • 您的 HTML 中有错误。您在@foreach 之前缺少一个结束&lt;/tr&gt; 标记。我怀疑它与您的问题有关,但您仍然应该解决它。

标签: laravel forms edit sql-delete


【解决方案1】:

您在表格中的第一个表格很好。你打开它,请求submit,然后在它的循环中关闭它/&lt;tr&gt;

您遇到的问题是因为您为复选框打开了多个表单,并且它们没有在循环/表格中关闭。这意味着您正在打开多个表单并在编辑表单的顶部打开,这会导致错误。

要修复,请更改此内容

<td>
        {{ Form::open(array( 'route'=> ['eliminastaff'],'method'=>'post')) }}
        {{ Form::checkbox('checked[]', $staff->id) }}
    </td>
</tr>
@endforeach
{{ Form::submit('Elimina') }}  
{{ Form::close() }}

对此:

    <td>
        {{ Form::open(array( 'route'=> ['eliminastaff'],'method'=>'post')) }}
        {{ Form::checkbox('checked[]', $staff->id) }}
        {{ Form::submit('Elimina') }}  
        {{ Form::close() }}
    </td>
</tr>
@endforeach

如果你想接受多个检查,你将不得不重新设计它。但这将解决您遇到的第一次编辑/最后一次删除错误的问题。

【讨论】:

  • 我的目标是提交“Elimina”接受多项检查,我该如何构建这个?
  • 这是一个不同的问题。这个答案能解决你原来的问题吗?对于多项检查,您必须有一些东西可以循环。使用您的代码,您在该行中有一个员工。这将允许删除该员工。如果您想从同一个表中删除多个员工,我建议您删除表单元素(b/c 您不能在另一个表单顶部的整个表上放置一个表单)并使用一些 javascript 来接受提交按钮表格底部(不在表格内)。这将允许任何员工删除但不会破坏 HTML 表单规则。
  • 您可以将初始编辑框保留为表单 - 效果很好。但我可能会在底部有一些onclick() 方法,用于查看哪些ids 被检查删除,然后将其发送到您的服务器。不是表格,但仍然做同样的事情:)
猜你喜欢
  • 2012-11-11
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-16
  • 1970-01-01
相关资源
最近更新 更多