Как отобразить контрольный список, если после отправки в Laravel foreach есть контрольный список? - PullRequest
0 голосов
/ 08 июня 2018

я пытаюсь отправить форму в foreach blade laravel, но почему она не проверяется после отправки?

<form method="get" class="form-inline float-left">
   <div class="form-group mb-2">
      <input type="text" id="keyword" name="keyword" class="form-control" placeholder="keyword here" value="{{ $keyword }}">
   </div>
   <ul class="nav nav-pills" id="nav">
      @foreach($menu as $d)
      <li role="presentation">
         <a class="text-capitalize" >
         <input type="checkbox" name="cx[]" value="{{ $d->custom_search_id }}" {!! (is_array(old('cx[]')) and in_array($d->custom_search_id, old('cx[]'))) ? ' checked' : '' !!} > 
         {!! $d->name !!}
         </a>
      </li>
      @endforeach
   </ul>
   <div class="form-group mb-2">
      <input type="submit" class="btn btn-primary" value="GO!">
   </div>
</form>

Ответы [ 3 ]

0 голосов
/ 08 июня 2018

я нашел ответ, создайте какую-нибудь функцию, подобную этой: fisrt:

<?php
   function checkCX($id){
   foreach(\Request::input("cx") as $input){
   if($input == $id){
   return true;
   }
   }
   return false;
   }
   ?>
   
<form method="get" class="form-inline float-left">
   <div class="form-group mb-2">
      <input type="text" id="keyword" name="keyword" class="form-control" placeholder="keyword here" value="{{ $keyword }}">
   </div>
   <ul class="nav nav-pills" id="nav">
      @foreach($menu as $d)
      <li role="presentation">
         <a class="text-capitalize" >
         <input type="checkbox" name="cx[]" value="{{ $d->custom_search_id }}" @if(!empty($d->custom_search_id)) {{ checkCX($d->custom_search_id) ? 'checked' : '' }} @else @endif > 
         {!! $d->name !!}
         </a>
      </li>
      @endforeach
   </ul>
   <div class="form-group mb-2">
      <input type="submit" class="btn btn-primary" value="GO!">
   </div>
</form>
0 голосов
/ 10 июня 2018

# CMIW

<form method="get" class="form-inline float-left">
  <div class="form-group mb-2">
     <input type="text" id="keyword" name="keyword" class="form-control" placeholder="keyword here" value="{{ $keyword }}">
  </div>
  <ul class="nav nav-pills" id="nav">
     @foreach($menu as $d)
     <li role="presentation">
        <a class="text-capitalize" >
           <input type="checkbox" name="cx[]" value="{{ $d->custom_search_id }}" {!! (is_array(old('cx')) and in_array($d->custom_search_id, old('cx'))) ? 'checked' : null !!}>
           {!! $d->name !!}
        </a>
     </li>
     @endforeach
  </ul>
  <div class="form-group mb-2">
     <input type="submit" class="btn btn-primary" value="GO!">
  </div>
</form>
0 голосов
/ 08 июня 2018

Если вы хотите проверить старый ввод (с несколькими значениями), вы должны использовать имя входа без квадратных скобок при проверке старых значений (не old('cx[]'), а old('cx'), таких как:

   <ul class="nav nav-pills" id="nav">
      @foreach($menu as $d)
      <li role="presentation">
         <a class="text-capitalize">
         <input type="checkbox" name="cx[]" value="{{ $d->custom_search_id }}" {!! (is_array(old('cx')) and in_array($d->custom_search_id, old('cx'))) ? ' checked' : '' !!} > 
         {!! $d->name !!}
         </a>
      </li>
      @endforeach
  </ul>
...