如何 Select 并使用 Laravel 清除所有复选框
how to Select and Clear all check-boxes using Laravel
我已经编写了一个代码,可以使用复选框向 selected 人发送电子邮件,现在我必须添加 select 全部并清除所有按钮,以便所有复选框都应该得到selected/dis-selected.
这是我的代码:
我的控制器:
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 }}
{{ $client->email }}
</article>
@endforeach
{!! Form::submit('Send Mail',['class' => 'btn btn-primary form-control']) !!}
{!! Form::close() !!}
<br/>
@include('clientinfo.newmember')
@stop
如果我在我的视图中添加一个按钮,命名为 select-all 和 clear-all 我如何将它们关联到 select 列表中的所有成员?
您可以给复选框一个 class 并使用 jquery。
您还需要一个带有 ID 的 "select all" 复选框。
$(function() {
$('#selectAll').click(function() {
if ($(this).prop('checked')) {
$('.your_checkbox_class').prop('checked', true);
} else {
$('.your_checkbox_class').prop('checked', false);
}
});
});
PS: 代码未测试
我更改了我的代码,它使用 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,这些方法在 whosebug.com 的答案中给出,但在 laravel 中没有任何效果。如果有人知道如何在laravel中使用jquery,请发表评论。
我已经编写了一个代码,可以使用复选框向 selected 人发送电子邮件,现在我必须添加 select 全部并清除所有按钮,以便所有复选框都应该得到selected/dis-selected.
这是我的代码:
我的控制器:
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 }}
{{ $client->email }}
</article>
@endforeach
{!! Form::submit('Send Mail',['class' => 'btn btn-primary form-control']) !!}
{!! Form::close() !!}
<br/>
@include('clientinfo.newmember')
@stop
如果我在我的视图中添加一个按钮,命名为 select-all 和 clear-all 我如何将它们关联到 select 列表中的所有成员?
您可以给复选框一个 class 并使用 jquery。 您还需要一个带有 ID 的 "select all" 复选框。
$(function() {
$('#selectAll').click(function() {
if ($(this).prop('checked')) {
$('.your_checkbox_class').prop('checked', true);
} else {
$('.your_checkbox_class').prop('checked', false);
}
});
});
PS: 代码未测试
我更改了我的代码,它使用 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,这些方法在 whosebug.com 的答案中给出,但在 laravel 中没有任何效果。如果有人知道如何在laravel中使用jquery,请发表评论。