Laravel 5

Comment puis-je récuperer des données envoyer en ajax en GET en Laravel

Avatar de Michel
Michel

Code JS

let categories = []
    
    items = document.querySelectorAll('input[name="categories[]"]')
    items.forEach(item => {
        item.addEventListener('change', function (e) {
            e.preventDefault()
            categories = []

            let checkedItems = document.querySelectorAll('input[name="categories[]"]:checked')
            checkedItems.forEach(itemCheck => {
                categories.push(itemCheck.value);
            })

            let xhr = new XMLHttpRequest()

            xhr.onreadystatechange = function() {
                if (xhr.readyState === 4) {
                    if (xhr.status === 200) {
                        console.log(categories)

                    }
                }
            }

            xhr.open('GET', '/shop/filter', true);
            xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
            xhr.send(categories)

        })
    })

Coté controller

public function filter()
    {

        var_dump(\request()->all());

        
    }

Avatar de LaraSharp
LaraSharp

Bonjour, tu peux récupérer facilement les données envoyés du script vers le controlleur en faisant ainsi .

** Script**

function test()
{
    let categories = ['test', 'toto'];
    $.ajax
    ({
        url: '/shop/filter',
        type: 'GET',
        dataType: "json",
        data: {
            categories : categories
        },
        dataType: 'json',
        success: function (data) {

        }});
}

** Controlleur **

 public function filter(Request $request)
{
     dd($request->all());
}

** Résultat**

array:1 [

"categories" => array:2 [ 0 => "test" 1 => "toto" ] ]

Vous ne pouvez pas répondre à ce sujet.