【问题标题】:Search data based on form values in Laravel在 Laravel 中根据表单值搜索数据
【发布时间】:2018-10-04 16:28:22
【问题描述】:

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

谢谢。

【问题讨论】:

  • StackOverflow 不是代码服务。您需要付出努力,然后提出您遇到的问题。
  • 好的,谢谢!我将编辑卡住的帖子。
  • 你是否得到解决方案??
  • 我已经尝试了一百万件事。我会编辑到最好的镜头。永远卡住了。
  • 等我更新我的解决方案

标签: php laravel search


【解决方案1】:

希望能给你一些启发

查看

            {!! 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);
}

【讨论】:

    【解决方案2】:
    <?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
    ?>
    

    【讨论】:

    • 仅代码的答案很糟糕。请解释你的答案。你的代码格式也很糟糕!
    猜你喜欢
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2020-05-13
    • 2021-04-02
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    相关资源
    最近更新 更多