Laravel:如何在没有表单操作的情况下提交复选框值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel:如何在没有表单操作的情况下提交复选框值?相关的知识,希望对你有一定的参考价值。

我将使用循环以这种方式显示消息:

<tr @if($message->seen == 0) class="unread"
    @elseif($message->seen == 1) class=""
    @endif
    >
    <td class="inbox-small-cells">
        <div class="checkbox checkbox-default inline-block">
            <input type="checkbox" id="checkbox012" name="checked[]"  value="{{encrypt($message->id)}}"/>
            <label for="checkbox012"></label>
        </div>
        <a href="{{route('inbox').'/'.encrypt($message->id)}}"><i class="zmdi zmdi-delete inline-block font-16"></i></a>
    </td>
    <td class="view-message  dont-show">
        <a href="{{ route('message'). '/' .encrypt($message->id) }}">
            {{$message->subject}}
        </a>
        @if($message->seen == 0)
            <span class="label label-warning pull-right">new</span>
        @endif
    </td>
    <td class="view-message ">{{$message->messageSender->email}}</td>
    <td class="view-message  text-right">
        <i class="zmdi zmdi-attachment inline-block mr-15 font-16"></i>
        <span  class="time-chat-history inline-block">{{ $message->created_at->format('H:i') }}</span>
    </td>
</tr>

这里我有名为checked[]的复选框和带有id信息的值。我在视图的顶部有这个链接:

<ul class="dropdown-menu">
    <li><a href="#"><i class="fa fa-pencil"></i> Mark as Read</a></li>
    <li><a href="#"><i class="fa fa-ban"></i> Spam</a></li>
    <li class="divider"></li>
    <li><a href="#"><i class="fa fa-trash-o"></i> Delete</a></li>
</ul>

可以使用链接<a href="{{ route('name') }}">Delete</a>来检查复选框值

或者如何正确发送?或者我必须使用表格?

答案

你可以使用javascript提交它,只需使用元素<a>并在控制器方法上路由href。

另一答案

您可以使用ajax调用来提交用户单击的数据。

我可能没有最好的解决方案,但这就是我所拥有的

为下拉列表分配ID。

并为该id写下onclick事件,并为每个示例分配不同的函数:

<li id="read"><i class="fa fa-pencil"></i> Mark as Read</a></li>

同样为下拉列表中的所有列表提供id并为所有人调用此函数

<script>

   $('#read').click(function(){
       var val = [];
       $(':checkbox:checked').each(function(i){
       val[i] = $(this).val();
     });

       //now you have all the selected message's id in val array which is encrypted 

      //now you can make ajax call for passing this value to laravel controller  and give route to the url : in the ajax 

//like :

    $.ajax({
       type: "POST",
       data: {info:val},
       url: url_need_to_be_given_here ,
      success: function(msg){
         console.log(msg);
       }
       });          
     });

</script>

这会将所有选定的消息ID传递给url指向的控制器,您可以将其解密并进行查询并执行所需的操作。

如果我对你有帮助,我会很高兴

以上是关于Laravel:如何在没有表单操作的情况下提交复选框值?的主要内容,如果未能解决你的问题,请参考以下文章

提交表单时接受条款和条件的复选框 - Laravel 8

如何以角度 4/6/7 在表单提交上传递所有选中的复选框值

在 laravel 中通过 ajax 提交简单的表单,之后,将新行插入到现有表中,其中包含来自提交表单的数据

如何在没有按钮的情况下提交表单?

Laravel提交表单具有相同的输入名称ajax

如何在没有 JavaScript 的情况下设计可扩展的 HTML 表单?