如何使用Laravel选择和清除所有复选框

时间:2015-11-17 10:30:59

标签: php laravel-5 checkboxlist

我编写了一个使用复选框向选定人员发送电子邮件的代码,现在我必须添加全选并清除所有按钮,以便选中/取消选中所有复选框。

这是我的代码:

我的控制器:

 public function display(){
        $data = Input::get('agree');
        $count = count ($data);
        $this->contact( $data );
        return view('clientinfo.display', compact('data','count'));
    }

我的观点:

@extends('app')
@section('content')

    <h1>Welcome! Send e-mail to selected people.</h1>
    <hr>
    {!! Form::open(array('action' => 'ClientsController@display','method' => 'GET'))!!}
        @foreach($clients as $client)
            {!! Form::checkbox("agree[]", $client->email, null,['id' => $client->email]) !!}
                <article>
                    {{ $client->user_name }}
                    &nbsp;
                    {{ $client->email }}

                </article>
        @endforeach
        {!! Form::submit('Send Mail',['class' => 'btn btn-primary form-control']) !!}

    {!! Form::close() !!}
    <br/>
    @include('clientinfo.newmember')
@stop

如果我在我的视图中添加一个按钮,命名select-all并清除所有如何关联它们,选择列表中的所有成员?

2 个答案:

答案 0 :(得分:0)

您可以给复选框一个类并使用jquery。 你还需要一个复选框,上面写着&#34;选择全部&#34;带有身份证。

for name, digits in e_list:
    shortest = sorted([d for l, d in a_list if digits.startswith(d)], key=len)[0]
    print name, digits, shortest

PS:代码未经过测试

答案 1 :(得分:0)

我对代码进行了更改,并使用 JavaScript 进行了更改。

这是我的代码:

@extends('app')
@section('content')

    <h1>Welcome! Send e-mail to selected people.</h1>
    <hr>
    {!! Form::open(array('action' => 'ClientsController@display','method' => 'GET','name'=>'f1' , 'id'=>'form_id'))!!}
    <br/>
        @foreach($clients as $client)
            <div class="form-group">
            {!! Form::checkbox("agree[]", $client->email, null,['id' => $client->email], ['class' => 'questionCheckBox']), $client->email !!}
            <br/>
            </div>
        @endforeach
    <div class="form-group">
    {!! Form::submit('Send Mail',['class' => 'btn btn-primary form-control']) !!}
    </div>

    <div class="form-group">
    {!! Form::button('Select All',['class' => 'btn btn-info form-control','onClick'=>'select_all("agree", "1")']) !!}
    </div>

    <div class="form-group">
    {!! Form::button('Clear All',['class' => 'btn btn-danger form-control','onClick'=>'select_all("agree", "0")']) !!}
    </div>

    {!! Form::close() !!}
@stop
@endsection

在我的主文件中,我添加了 JavaScript

    <script type="text/javascript">

    var formblock;
    var forminputs;

    function prepare() {
        formblock= document.getElementById('form_id');
        forminputs = formblock.getElementsByTagName('input');
    }

    function select_all(name, value) {
        for (i = 0; i < forminputs.length; i++) {
            // regex here to check name attribute
            var regex = new RegExp(name, "i");
            if (regex.test(forminputs[i].getAttribute('name'))) {
                if (value == '1') {
                    forminputs[i].checked = true;
                } else {
                    forminputs[i].checked = false;
                }
            }
        }
    }

    if (window.addEventListener) {
        window.addEventListener("load", prepare, false);
    } else if (window.attachEvent) {
        window.attachEvent("onload", prepare)
    } else if (document.getElementById) {
        window.onload = prepare;
    }
</script>

之前我使用Jquery这样做,但是没有用,然后我尝试使用 JavaScript 并且它有效。 我已经尝试了各种方法在我的代码中添加jquery,这些方法在 stackoverflow.com 的答案中给出,但是在laravel中没有任何效果。如果有人知道如何在 laravel 中使用 jquery ,请发表评论。