Множественный результат фильтрации с AJAX

-1

В настоящее время я использую Laravel с вызовом AJAX в базу данных для извлечения содержимого в базе данных. Раньше я делаю селектор языков, который будет фильтровать видеоязык. Но теперь я намерен изменить его на несколько языковых селекторов. Я google для множественной фильтрации результатов, но ни один из них не работает для меня. Я использую вызов AJAX, когда пользователь выбирает один язык. Для текущего случая у нас есть несколько вызовов AJAX с несколькими вариантами выбора.

Javascript AJAX (когда вы выбираете новый язык)

var language = $(this).text();
var channel = "{{ $channel }}";

$.ajax({
            url:'/directory/updateLanguage/live/'+language+'/'+channel,
            type: 'GET',
            success: function(data) {
                $('#live').html(data);
            }
        });

        $.ajax({
            url:'/directory/updateLanguage/past/'+language+'/'+channel,
            type: 'GET',
            success: function(data) {
                $('#past').html(data);
            }
        });

URL-адрес будет выполняться ниже из Controller:

public function updateLanguage($type,$language,$channel)
{
$categoryId = Channel::where('name','=',strtolower($channel))->pluck('category_id');

    if ($language == "All Languages" && $categoryId == 0)
    {
        var_dump("IF All languages and category all");
        $past = Videos::orderBy('created_at','desc')->where('active','=',1);
        $live = Videos::where('stream_active','=','1')->where('active','=',1)->orderBy('created_at','desc');    
    }else if ($categoryId != 0) {
        var_dump("Any languages and Not in 'all' ");
        $past = Videos::where('category_id','=', $categoryId)->where('stream_active','=','0')->where('active','=',1)->where('language','=',$language)->orderBy('created_at','DESC');
        $live = Videos::where('category_id','=', $categoryId)->where('stream_active','=','1')->where('active','=',1)->where('language','=',$language)->orderBy('created_at','DESC');
    }else {
        var_dump("ELSE");
    }
...
}

В настоящее время я хочу фильтровать несколько видео на одном языке. У меня есть div в виде списка видео, я знаю, как фильтровать одноязычное видео, но не несколько селекторов языков в базе данных.

  • 1
    Можете ли вы объяснить, что вам нужно?
  • 0
    @Musthaan Я хочу отфильтровать более одного языка видео из моей базы данных, чтобы в списке видео отображалось видео с более чем одним языком.
Теги:
filter

1 ответ

0

Вы можете установить переменную langage, например: fr.en.nl

Затем в вашем PHP вы разделите строку как

$str = 'fr.en.nl';
$langages= preg_split('.', $str);

Наконец, задайте запрос SQL с помощью ORWHERE (Laravel)

->where('language','=',$languages[0])->orWhere('language','=',$language[1])
  • 0
    Что, если только $ str = 'fr', $ language [1] будет «Неопределенная ошибка смещения»
  • 0
    Ну, это, очевидно, пример. Просто скажите, if(count(langages) > 1) => Вы должны выполнить простой foreach для своей переменной langages. Для каждого значения вы добавляете условие!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню