Поиск данных на основе значений формы в Laravel - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть форма поиска, где вы можете выбрать разные города и тип дома.Может кто-нибудь сказать мне, как я могу поместить введенные данные формы в URL и отобразить отфильтрованные данные с помощью метода GET в Laravel?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

Надеюсь, это даст вам представление

вид

            {!! Form::open(['url' => ['yoururl'], 'method' => 'get', 'role' => 'form' ,'id' => 'search']) !!} 
                <select class="form-control" name="city">

                  <option value="">--Select--</option>
                   @foreach($cityas $cs)
                    <option  value="{{$cs['cityid']}}">{{$cs['city']}}</option>
                   @endforeach

              </select>

                   <input type="text" name="zip" class="form-control fldcls clrfield">
                   <input type="hidden" id="hasvalues" name="search" value="1">
                   <button type="button" onclick="submitSearch()"  class="btn rsi-submit-btn">Search</button>
                {!! Form::close() !!}

Сценарий

function submitSearch(){
  $("#search").submit();
}

Контроллер

В вашем контроллере

public function functionname(Request $request)
        if($request->input('search') && $request->input('search') == '1'){
             $result = modalname::modal function name( $request );

       //Get the data using modal and passed it to the view page

          }
     $data['result']    = $result;
    return view('your view page', $data);
}
0 голосов
/ 24 апреля 2018
<?php 
  $selectedcities=[]; 
    if (\Illuminate\Support\Facades\Input::has('city')) {
    foreach (\Illuminate\Support\Facades\Input::get('city') as $c) {
      $selectedcities[] = $c;
    }
  }
?>

<script>

$(document).ready(function() {
  $('.refine-your-search input[type=checkbox]').click(function() {
    var prm = $(this).closest('div').attr('id');
    searchByCheckbox(prm);
  });
});

function searchByCheckbox(prm) {
  var searchString = '';
  var searchString = $('#'+prm+'String').val();
  if (searchString != '') {
    searchString = searchString + '&';
  }
  var tmpQString = '';
  $('#'+prm+' input[type=checkbox]:checked').each(function() {
    if(tmpQString != ''){
      tmpQString = tmpQString + '&';
    }
    
    tmpQString = tmpQString + prm + '[]=' + $(this).val();
  });

  // alert(tmpQString);
  searchString = searchString + tmpQString;
  var searchUrl = baseUrl + '?' + searchString;
  window.location.replace(searchUrl);
  return window.location.href = searchUrl;
}

</script>
<div id='city'>
  <!-- use foreach for all cities -->
  <input type="checkbox" value="Cityname" name="city[{{ $city->id }}]" {{ (in_array($city->id,  $selectedcities)) ? 'checked="checked"' : '' }}>
  <label>{{$city->name}}</label>
  <input type="hidden" id="cityString" name="cityString" value="<?php echo http_build_query(Request::except(['city']));?>">
  <!-- end foreach -->
</div>
<!-- In Controller you can get -->
<?php 
  $city = $request->city; //and use it in your query LIKE
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...