Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

aGreenCoder's avatar

Building query urls based on get request from form

This is my form

 <form method="get" enctype="multipart/form-data" action="{{ route('this.is.route.name') }}">
@csrf
        <select class="form-control" name="searchAdmin">
            <option class="hidden" selected disabled>Admin List </option>
            <option value="1">Value 1</option>
            <option value="2">Value 2</option>
        </select>
        <<select class="form-control" name="searchAgent">
            <option class="hidden" selected disabled>Agent List </option>
            <option value="1">Value 1</option>
            <option value="2">Value 2</option>
        </select>
        <input type="submit" value="Search Data" />
    </form>

I need to create http://127.0.0.1:8000/datasearch?filter[dbfieldname1]=searchAdmin&filter[dbfieldname2]=searchAgent type of URL for searching data

Current route

Route::get('datasearch', [Mycontroller::class, 'MyFunction'])->name('this.is.route.name');

How can I achieve this?

0 likes
1 reply
rodrigo.pedra's avatar
Level 56

First, remove enctype="multipart/form-data", it has no effect on GET requests.

Second, from my understanding of your description, this should do the trick:

<form method="GET" action="{{ route('this.is.route.name') }}">
    <select class="form-control" name="filter[dbfieldname1]">
        <option class="hidden" selected disabled>Admin List </option>
        <option value="1">Value 1</option>
        <option value="2">Value 2</option>
    </select>
    <select class="form-control" name="filter[dbfieldname2]">
        <option class="hidden" selected disabled>Agent List </option>
        <option value="1">Value 1</option>
        <option value="2">Value 2</option>
    </select>
    <button type="submit">Search Data</button>
</form>

EDIT: removed @csrf, as it is not needed for GET requests, and it is not a good idea to expose it as a query parameter anyway.

1 like

Please or to participate in this conversation.