Chris
Chris

Reputation: 2171

Laravel 5.5 send data to view without reloading page

In my view I have some data that I can use $data in this $data are several other arrays with a key. Now my goal is to when a user selects something from a dropdown I want to update this $data array without doing a redirect.

I am aware I need to use AJAX and my AJAX call works fine I am just a tad confused on what I am supposed to do in my controller method I need to do something like this but without refreshing the page but this would remove all my other data that is already in the $data array from before

This is my method:

/**
 * Fetches a company 
 *
 * @param $companyId
 */
public function fetchCompany($companyId)
{
    $company = Company::where('id', $companyId)->first();

    $data['company'] = $company;

    return view('this should be the same view that I did my ajax call from', ['data' => $data]);
}

So I want to add this $company to the already existing $data array that I am using in my view.

Upvotes: 2

Views: 2811

Answers (1)

Mr. Pyramid
Mr. Pyramid

Reputation: 3935

Answering from what I have understand so far.

public function fetchCompany($companyId)
{
    $company = Company::where('id', $companyId)->first();
    return response()->json($company);
}

then you need to call ajax like this

<script>
        $(document).ready(function(){
            $("whatever your dropdown id").change(function(){
                $.ajax({
                    url:'yoururl',
                    type: 'whatever datatype',
                    dataType:'json',
                    success: function(data){
                        var x;
                        for(x in data){
                            $("#div1").append(data[x]);
                        }
                    }
                });
            });
        });
    </script>

Upvotes: 3

Related Questions