【问题标题】:Multiple filter result with AJAX使用 AJAX 的多重过滤结果
【发布时间】:2015-04-28 07:42:24
【问题描述】:

我目前正在使用 Laravel 和 AJAX 调用数据库来检索数据库中的内容。以前我正在做将过滤视频语言的语言选择器。但现在我打算将其更改为多语言选择器。我用谷歌搜索多个结果过滤,但它们都不适合我。当用户选择一种语言时,我正在使用 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 将是控制器下面的执行方法:

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,我只知道如何过滤一种语言视频,但不知道如何过滤数据库中的多种语言选择器。

【问题讨论】:

  • 你能解释一下你需要什么吗?
  • @Musthaan 我想过滤我的数据库视频中多于一种语言的视频,以便视频列表显示多于一种语言的视频。

标签: javascript jquery ajax laravel filter


【解决方案1】:

您可以设置语言变量,如:fr.en.nl

然后,在您的 PHP 中,您将字符串拆分为

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

最后,用 ORWHERE (Laravel) 设置 SQL 请求

->where('language','=',$languages[0])->orWhere('language','=',$language[1])

【讨论】:

  • 如果 $str = 'fr' only,$language[1] 将是“未定义的偏移错误”
  • 嗯,这显然是一个例子。只需说if(count(langages) > 1) => 你必须对你的语言变量做一个简单的foreach。为每个值添加一个条件!
猜你喜欢
  • 2015-07-30
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
  • 2016-12-17
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多