从多个复选框中获取所有值后,我遇到了一个严重的问题。我可以获取最后检查的值,但不能再提取。
这是我的控制器:
public function getFilterPaytv(){
$valore = Input::get('opt');
if(!empty($valore))
foreach ($valore as $val) {
$results = Tpaytv::where('Desc', 'LIKE', '%' . $val . '%')->get();
echo $val . ""; //
// echo $results
}
return View::make('result')->with('results', $results);
}
这是我的观点
@if($results->count())
@foreach($results as $pa)
<div class="col-lg-12 ">
<div class="box">
<div class="row">
<div class="col-lg-2"><img src="img/T.png" class="timC"></div>
<div class="col-lg-4">
<ul class="boxCar">
<li>Pro: {{$pa->Type}}</li>
<li>Sca: {{ date("d/m/Y",strtotime($pa -> S))}}</li>
<li
data-toggle="modal"
data-target="#{{ $pa->id }}">
<a>Magg</a></li>
</ul>
</div>
<!--inizio modal -->
<!-- fine modal -->
<div class="col-lg-3"><h1 class="ads">{{$pa->T}}€</h1></div>
<div class="col-lg-3">
{{
link_to_route('confr.show',
'request ',
array($paytv->id),
array('class' => 'btn btn-green btn-md offButton'))
}}
</div>
</div>
</div>
</div>
@endforeach
@else
no
@endif
答案 0 :(得分:1)
您的代码仍然存在许多需要解决的问题,但您只能获得复选框设置的最后结果,假设复选框值来自{{1} },因为当你遍历foreach中的值时,你会覆盖你的结果变量。
在您的代码中:
$valore = Input::get('opt');
变量foreach ($valore as $val) {
$results = Tpaytv::where('Desc', 'LIKE', '%' . $val . '%')->get();
echo $val . ""; //
// echo $results
}
在循环的第一次迭代之前尚未声明,这意味着在您的第一个循环中$result
设置为$result
方法调用的结果,然后是第二个循环Tpaytv::where
中的值被$result
方法调用的下一个结果覆盖。这就是为什么你只检查最后一个值的原因;它是你的foreach中最后一个值。
如果你想得到一大堆结果,你需要在foreach循环之前将Tpaytv::where
变量声明为空数组,然后将结果推送到数组中:
$result
答案 1 :(得分:0)
@foreach ($friends as $friend)
<input tabindex="1" type="checkbox" name="check[]" id="{{$item}}" value="{{$itemval}}">
@endforeach
$items_checked= Input::get('check');
if(is_array($items_checked))
{
// do stuff with here with checked items
}