J'ai une page de filtrage pour obtenir les publications en fonction des choix de l'utilisateur, je souhaite donner à l'utilisateur la possibilité de choisir plusieurs façons de filtrer, telles que le prix, la date de publication, la catégorie, etc. donc je devrais ajouter les choix précédents de l'utilisateur.

Par exemple ex: example.com?category=1 et maintenant l'utilisateur veut filtrer avec le prix, il devrait l'être. ex: example.com?category=1&price=200

Cela fonctionne pour moi en essayant la balise <a></a>, ex <a href="{{ route('posts', array_merge(request()->input(), ['price' => 200])) }}">price 200</a>.

Je dois donc faire la même chose avec le formulaire GET, voici comment j'essaie de le résoudre :

{!! Form::open(
[
    'route'     => [Request::route()->getName(), request()->input()],
    'method'    => 'GET'
]) !!}
    @foreach ($specialisms as $specialism)
    <div class="custom-control custom-checkbox">
        {!! Form::checkbox('specialism', $specialism->id, request('specialism') == $specialism->id, ['class' => 'custom-control-input', 'id' => Str::snake($specialism->title['en']), 'onchange' => '$(this).parent().parent().submit()']) !!}
        <label class="custom-control-label" for="{{ Str::snake($specialism->title['en']) }}">{{ $specialism->lang_title }}</label>
    </div>
    @endforeach
{!! Form::close() !!}

Mais cela ne fonctionne pas, il supprime toujours tous les paramètres et ajoute uniquement le paramètre pour la saisie du formulaire

0
Muhammed ElFeqy 15 nov. 2020 à 18:18

1 réponse

Meilleure réponse

Tu devrais modifier :

Nom de la case à cocher :specialism[] et condition : in_array($specialism->id, request('specialism'))

Être :

{!! Form::open([
'route' => [Request::route()->getName(), request()->input()],
'method' => 'GET',
]) !!}
@foreach ($specialisms as $specialism)
    <div class="custom-control custom-checkbox">
        {!! Form::checkbox('specialism[]', $specialism->id, in_array($specialism->id, request('specialism')), ['class'
        => 'custom-control-input', 'id' => Str::snake($specialism->title['en']), 'onchange' =>
        '$(this).parent().parent().submit()']) !!}
        <label class="custom-control-label"
            for="{{ Str::snake($specialism->title['en']) }}">{{ $specialism->lang_title }}</label>
    </div>
@endforeach
{!! Form::close() !!}

0
ahmed nasser 16 nov. 2020 à 10:13