首页 > 解决方案 > 在 Laravel 中根据表单值搜索数据

问题描述

我有一个搜索表格,您可以在其中选择不同的城市和房屋类型。谁能告诉我如何将输入的表单数据放入 URL 并在 Laravel 中使用 GET 方法显示过滤后的数据?

谢谢你。

标签: phplaravelsearch

解决方案


<?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
?>

推荐阅读