Why form is not submitting input fields to server ?

Published 1 week ago by ajitjadhav28

Only csrf field is received on server side. My input tags are inside two div elements. Form structure is like following.

<form>
{{ csrf_field() }}
<div>
    <div>
        <input>
    </div>
</div>
</form>

when i dd($request->all()) only csrf field is dumped.

Best Answer (As Selected By ajitjadhav28)
Snapey

You need to name="" on all your input fields.

Thyrosis

I think that might be due to the way your browser parses the form and sends it upon submission.

Have a look what happens if you remove the divs and have the input fields straight inside the elelement. You should be able to see the fields then.

Maybe this will help? https://stackoverflow.com/questions/16739423/is-it-possible-to-code-a-form-over-multiple-divs

Snapey
Snapey
1 week ago (705,395 XP)

divs have NO effect on forms. Something else is going on.

Try looking at the out of the box login form...

Show your actual form

ajitjadhav28

Hello Thyrosis and Snapey, Thanks for replying. I am trying to solve but not getting it. Other forms are working properly.

Form -

<form method="POST" id="profile-form" action="/profile/basicinfo" style="padding: 10px 10px 0px 10px">
                    {{ csrf_field() }}
                <div class="row form-group username">
                    <label for="un" class="col-sm-4 col-form-label text-right">Username :</label>
                    <div class="col-sm-8">
                        <input type="text" class="form-control" id="un" placeholder="Username" value="{{ $username }}" {{ $errors->basicinfo->any() ? '' : 'disabled' }}>
                    </div>
                </div>
                
                <div class="row form-group firstName">
                    <label for="fn" class="col-sm-4 col-form-label text-right">First Name :</label>
                    <div class="col-sm-8">
                        <input type="text" class="form-control" id="fn" placeholder="First Name" value="{{ $firstName }}" {{ $errors->basicinfo->any() ? '' : 'disabled' }}>
                    </div>
                </div>

                <div class="row form-group lastName">
                    <label for="ln" class="col-sm-4 col-form-label text-right">Last Name :</label>
                    <div class="col-sm-8">
                        <input type="text" class="form-control" id="ln" placeholder="Last Name" value="{{ $lastName }}" {{ $errors->basicinfo->any() ? '' : 'disabled' }}>
                    </div>
                </div>
                
                @if($errors->basicinfo->any())
                    <div class="alert alert-danger important alert_padding text-left" id="profile_update_err">
                        <ul>
                            <li>{{ $errors->basicinfo->first() }}</li>
                        </ul>
                    </div>
                @endif  

                <div id="btn-save-change" class="row text-center edit-elm-tgg" style="display: {{ $errors->basicinfo->any() ? 'block' : 'none' }};">
                    <div class="col-sm-6" style="margin: 5px 0 5px 0;">
                        <button class="btn btn-primary" id='btn-prof-save' type="submit" style="padding-left: 18px; padding-right: 18px">Save Changes</button>
                    </div>
                    <div class="col-sm-6" style="margin: 5px 0 5px 0;">
                        <button class="btn btn-secondary" type="button" onclick="cancelPropInfo()">Cancel Changes</button>
                    </div>
                </div>
                <hr id="edit-elm-tgg" style="display: {{ $errors->basicinfo->any() ? 'block' : 'none' }};">
                </form>

Route

Route::post('/profile/basicinfo', '[email protected]');

Controller method

public function basicInfo(Request $request) 
{
        dd($request->all());
}
Snapey
Snapey
1 week ago (705,395 XP)

You need to name="" on all your input fields.

ajitjadhav28

@Snapey Thank you ..

Please sign in or create an account to participate in this conversation.