Laravel 5.7 Показать все значения из столбца базы данных с динамическим выпадающим меню - PullRequest
0 голосов
/ 16 февраля 2019

В моем приложении Laravel 5.7 у меня есть динамическое выпадающее меню, которое вызывает различные значения из столбца базы данных.В раскрывающемся списке пользователи могут фильтровать свои записи на странице сводки записей.Значения выбора правильно поступают в строку запроса (получить), а записи корректно извлекаются в таблицу в виде блейда.Что я не могу понять, так это как извлечь все значения из выпадающего меню, например, со значением «все» по умолчанию в начале выпадающего меню, если пользователи не хотят выбирать одно значение.Если пользователь выбирает значение по умолчанию - «все» - это должно вернуть все записи независимо от их приоритета.Любое руководство будет наиболее ценным.

Контроллер

public function summary(Request $request)
{
  $priorities = DB::table('tasks')->where('user_id', auth()->id())->distinct()->orderBy('priority', 'asc')->pluck('priority');

  $priority = $request->query('priority');
  $end = $request->query('end');
  $start = $request->query('start');
  $all = $request->query('priority' == "all"){
  DB::table('tasks')->pluck('priority')};

  $result = DB::table('tasks')
              ->whereBetween('date', array($start, $end))
              ->where('priority', '=', $priority || $all)
              ->where('user_id', auth()->id())
              ->orderBy('priority', 'asc')
              ->get();

  return view('/summary', compact('priorities', 'result'));
}

Просмотр

<label for="distance">Priority:</label><br> 
<select class="form-control" name="priority" id="priority"> 
  <option value="all">---ALL---</option>
  @foreach ($priorities as $priority)
  <option value ="{{ $priority }}">{{ $priority }}</option>
  @endforeach
</select>

Если пользователь выбирает значение по умолчанию - «все» -это должно вернуть все записи независимо от их приоритета.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019
var e = document.getElementById("priority");
var all = e.options[e.selectedIndex].text;

if(all === "all") {
    var base_url = 'http://localhost/laravel/get-priority'
 $.ajax({
          type: "GET",
          url : base_url+"/all",
          data : dataString,
          success : function(data){
             $.each(data, function(key, value){
                       // alert(key);
                        $('#priority').append('<option value="'+value.id+'">' + value.priority+ '</option>');

                    });
          }
}

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

 $priority = $request->query('priority');

 $result = DB::table('tasks')
     ->whereBetween('date', array($start, $end))
     ->where('user_id', auth()->id());


  if($priority=="all"){
      $all = $request->query('distance' == "all"){
          DB::table('sessions')->pluck('distance');
      }
      $result = $result->where('priority', '=',$all);
  }else{
      $result = $result->where('priority', '=', $priority );
  }

  $result = $result->orderBy('priority', 'asc')
            ->get();
0 голосов
/ 16 февраля 2019

проверьте значение, которое вы получите из запроса, как

$priority = $request->query('priority');

 $result = DB::table('tasks')
 ->whereBetween('date', array($start, $end))
 ->where('user_id', auth()->id())

  if($priority=="all"){
   $result = $result->where('priority', '=',$all);
  }else{
   $result = $result->where('priority', '=', $priority );
  }

  $result = $result->orderBy('priority', 'asc')
            ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...