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

时间:2018-01-11 14:19:16

标签: php laravel laravel-5.5

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

<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>

来检查复选框值

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

为下拉列表分配ID。

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

<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指向的控制器,您可以将其解密并进行查询并执行所需的操作。

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