Skip to main content

My code get data from database using AJAX the problem is i want to filter data by month year and quarter and the code that does that is ->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month); but i

->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month);

However can't put it in a variable for example and call it so i did this it works but looks ugly Hello.

I have this Codecode in Dashboard ControllerDashboardController:

And in index.bladeIn index.blade.php I have this code to retrieve the data using ajax:

I know its a mess but how to refactor this code to make it look a little bit nicer the code works but looks awful.

My code get data from database using AJAX the problem is i want to filter data by month year and quarter and the code that does that is ->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month); but i can't put it in a variable for example and call it so i did this it works but looks ugly Hello I have this Code in Dashboard Controller:

And in index.blade I have this code to retrieve the data using ajax

I know its a mess but how to refactor this code to make it look a little bit nicer the code works but looks awful

My code get data from database using AJAX the problem is i want to filter data by month year and quarter and the code that does that is:

->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month);

However can't put it in a variable for example and call it so i did this it works but looks ugly.

I have this code in DashboardController:

In index.blade.php I have this code to retrieve the data using ajax:

I know its a mess but how to refactor this code to make it look a little bit nicer the code works but looks awful.

Source Link

My code get data from database using AJAX and return to view

My code get data from database using AJAX the problem is i want to filter data by month year and quarter and the code that does that is ->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month); but i can't put it in a variable for example and call it so i did this it works but looks ugly Hello I have this Code in Dashboard Controller:

public function readData(){

$TableB1 = \DB::table('users')
    ->join('group_user', 'users.id', '=', 'group_user.user_id')
    ->join('groups', 'groups.id', '=', 'group_user.group_id')
    ->select(
       'users.name as name',
       'group_user.user_id as id',
       'groups.name as groupname'
       )
    ->get();

    $filter = $_REQUEST["filter"]; // Get the variable data through AJAX call from the index


    foreach ($TableB1 as &$entry){
        if ($filter == 'month'){ // Filter data by month
        $meetings = \DB::table('meetings') 
        ->where('company_id', 1)->where('owned_by_id', $entry->id) 
        ->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month);
        }
        else if ($filter == 'quarter'){ // Filter data by quarter
            $meetings = \DB::table('meetings') 
            ->where('company_id', 1)->where('owned_by_id', $entry->id) 
            ->where(\DB::raw('QUARTER(created_at)'), Carbon::today()->quarter);
        }
        else if ($filter == 'year'){ // Filter data by year
            $meetings = \DB::table('meetings') 
            ->where('company_id', 1)->where('owned_by_id', $entry->id) 
            ->where(\DB::raw('YEAR(created_at)'), Carbon::today()->year);
        } else { // Filter data by day
            $meetings = \DB::table('meetings') 
            ->where('company_id', 1)->where('owned_by_id', $entry->id) 
            ->where(\DB::raw('DAY(created_at)'), Carbon::today()->day);
        }
        $entry->meetingsCount = $meetings->count();
        
       
    }

    return $TableB1;

 }

And in index.blade I have this code to retrieve the data using ajax

var filter = 'day';

$(document).ready(function(){
    $.get('/dashboard/read?filter=' + filter, function(data){
        $.each(data,function(i,value){
            var tr =$("<tr/>");
            tr.append($("<th/>",{
                text : value.groupname
            })).append($("<th/>",{
                text : value.name
            })).append($("<th/>",{
                text : value.meetingsCount
            })).append($("<th/>",{
                text : value.callsCount
            })).append($("<th/>",{
                text : value.leadsCount
            }))
            $('#tableData').append(tr);
        })
    })

    $("#day").click(function() { // Filter data by day
        filter = 'day';

        $('#tableData').find('tr').empty(); // Clear Table 1st


        $.get('/dashboard/read?filter=' + filter, function(data){
            $.each(data,function(i,value){
                var tr =$("<tr/>");
                tr.append($("<th/>",{
                    text : value.groupname
                })).append($("<th/>",{
                    text : value.name
                })).append($("<th/>",{
                    text : value.meetingsCount
                })).append($("<th/>",{
                    text : value.callsCount
                })).append($("<th/>",{
                    text : value.leadsCount
                }))
                $('#tableData').append(tr);
            })
        })
    });

    $("#month").click(function() { //Filter data by month
        $('#tableData').find('tr').empty(); // Clear Table 1st

        filter = 'month';

        $.get('/dashboard/read?filter=' + filter, function(data){
            $.each(data,function(i,value){
                var tr =$("<tr/>");
                tr.append($("<th/>",{
                    text : value.groupname
                })).append($("<th/>",{
                    text : value.name
                })).append($("<th/>",{
                    text : value.meetingsCount
                })).append($("<th/>",{
                    text : value.callsCount
                })).append($("<th/>",{
                    text : value.leadsCount
                }))
                $('#tableData').append(tr);
            })
        })
    });

    $("#quarter").click(function() { //Filter data by quarter
        filter = 'quarter';

        $('#tableData').find('tr').empty(); // Clear Table 1st

        $.get('/dashboard/read?filter=' + filter, function(data){
            $.each(data,function(i,value){
                var tr =$("<tr/>");
                tr.append($("<th/>",{
                    text : value.groupname
                })).append($("<th/>",{
                    text : value.name
                })).append($("<th/>",{
                    text : value.meetingsCount
                })).append($("<th/>",{
                    text : value.callsCount
                })).append($("<th/>",{
                    text : value.leadsCount
                }))
                $('#tableData').append(tr);
            })
        })
    });

    $("#year").click(function() { //Filter data by year
        filter = 'year';

        $('#tableData').find('tr').empty(); // Clear Table 1st

        $.get('/dashboard/read?filter=' + filter, function(data){
            $.each(data,function(i,value){
                var tr =$("<tr/>");
                tr.append($("<th/>",{
                    text : value.groupname
                })).append($("<th/>",{
                    text : value.name
                })).append($("<th/>",{
                    text : value.meetingsCount
                })).append($("<th/>",{
                    text : value.callsCount
                })).append($("<th/>",{
                    text : value.leadsCount
                }))
                $('#tableData').append(tr);
            })
        })
    });

I know its a mess but how to refactor this code to make it look a little bit nicer the code works but looks awful