简体   繁体   English

如何使用相同名称的输入类型更新多个mysql行

[英]How to update multiple mysql rows using same name of input types

I am creating a web site. 我正在创建一个网站。 In this web site, there is only one html form. 在此网站上,只有一种html表单。 But , I included that form inside the foreach and then loop the form according to the database. 但是,我将该表单包括在foreach中,然后根据数据库循环该表单。 Now , I want to update the form. 现在,我想更新表格。 When I tied with one form at a time , I was able to update the database values. 当我一次只绑定一种表单时,便能够更新数据库值。 But , I couldn't update all the forms at once. 但是,我无法一次更新所有表格。

How can I update all the forms at once by using only one button click ?? 如何仅通过单击一个按钮一次即可更新所有表单?

Here is the Route. 这是路线。

Route::put('/UserBookingDetailsUpdate/{id}', 'PaymentController@UserBookingDetailsUpdate');

here is the View. 这是视图。 (MyDetails.blade.php) (MyDetails.blade.php)

    <?php $count = 0; ?>
    @foreach($GetAdultDetails as $GetAdultDetail)

    <?php $count = $count + 1; ?>

    <form class="form-horizontal UserBooking" action="{{ url('UserBookingDetailsUpdate/' .$GetAdultDetail['id']) }}" method="POST" enctype="multipart/form-data" id="UserBookingDetailsForm_{{$count}}">

    {{ method_field('PUT') }}
    {{ csrf_field() }}

        <div class="panel panel-default">

        <div id="collapseOne_{{$count}}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
            <div class="panel-body">

                <div class="row col-md-12">
                <p class="de_topic" style="margin-top: 5px;">Personal Information</p>

                <div class="form-group adult_space col-md-6 col-xs-6 respo_pdin">
                    <label class="col-sm-4 control-label adult_topic de_fname respo_pdin">First name</label>
                    <div class="col-sm-8 respo_pdin">
                    <div class="input-group adult_group">
                        <input type="text" class="form-control adult_input" value="{{$GetAdultDetail['adult_first_name']}}" name="adult_first_name" aria-label="...">
                    </div><!-- id[{{$GetAdultDetail['id']}}]['fname'] /input-group -->
                        </div>
                    </div>

                    <div class="form-group adult_space col-md-6 col-xs-6 respo_pdin">
                        <label class="col-sm-4 control-label adult_topic de_fname respo_pdin">Last name</label>
                            <div class="col-sm-8 respo_pdin">
                            <div class="input-group adult_group">
                            <input type="text" class="form-control adult_input" value="{{$GetAdultDetail['adult_last_name']}}" name="adult_last_name" aria-label="...">
                            </div><!-- id[{{$GetAdultDetail['id']}}]['lname'] /input-group -->
                            </div>
                    </div>

                    <div class="form-group adult_space col-md-6 col-xs-6 respo_pdin" style="margin-bottom: 9px;">
                        <label class="col-sm-4 control-label adult_topic de_fname respo_pdin">Gender</label>
                        <div class="col-sm-8 bh respo_pdin">
                            <select class="selectpicker" data-style="select-with-transition" name="adult_gender" title="Choose Adult" data-size="7">
                            <option value="Male">Male</option>
                            <option value="Female">Female</option>
                            </select>
                        </div>
                    </div>

            </div>

        </div>

            <div class="row col-md-12">
                <div class="">
                <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseMore_01_{{$count}}" aria-expanded="false" aria-controls="collapseMore_01" role="tab" id="headingOne1" class="titlec">
                <p class="panel-title_01">
                    More details <span class="arrow"><span></span><span></span></span>
                </p>
                </a>
            </div>

            <div class="panel panel-default in_panel">

                <input type="submit" value="Save" name="AdultSaveNow_{{$count}}" class="btn btn-default fghkl de_save AdultSaveNow_{{$count}}" id="AdultSaveNow_{{$count}}">
                </div>
            </div>
        </div>
    </div>
</form>
@endforeach

Here is the Controller. 这是控制器。 (MyDetailsController.php) (MyDetailsController.php)

 public function UserBookingDetailsUpdate(Request $request,$id)
{
    $adult_usersCount = PassengerAdultDetails::where('pnr_id', $id)->get();
    //$adult_usersNew = PassengerAdultDetails::find($id);

    $GetAdults = DB::table('passenger_adult_details')->where('pnr_id', $id)->get()->toArray();

 // for($i = 0; $i < $adult_usersCount->count() ; $i++)
    //{
      //$GetAdults = DB::table('passenger_adult_details')->where('pnr_id', $id)->get();
      //echo $GetAdults[$i]->id ."<br>"; die();

        $adult_users = PassengerAdultDetails::find($id);
        $adult_users->adult_first_name = $request->get('adult_first_name');
        $adult_users->adult_last_name = $request->get('adult_last_name');
        $adult_users->adult_gender = $request->input('adult_gender');
        $adult_users->update();

    //}

    return redirect()->back();

}

Putting the form inside a foreach is in effect creating multiple forms, and you can only submit one form at a time from HTML (if you are not doing JS/AJAX stuff). 将表单放在foreach中实际上会创建多个表单,并且一次只能通过HTML提交一个表单(如果您不使用JS / AJAX的话)。

Put the form outside the foreach and create an array of input s instead. 将表单放在foreach之外,然后创建一个input数组。

For example: 例如:

In the View : 视图中

    <form class="form-horizontal UserBooking" action="{{ url('UserBookingDetailsUpdate'}}" method="POST" enctype="multipart/form-data">

    <?php $count = 0; ?>
    @foreach($GetAdultDetails as $GetAdultDetail)

    <?php $count = $count + 1; ?>


    {{ method_field('PUT') }}
    {{ csrf_field() }}

        <div class="panel panel-default">

        <div id="collapseOne_{{$count}}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
            <div class="panel-body">

                        <input type="hidden" value="{{$GetAdultDetail['id']}}" name="adults[{{$count}}][id]">


                <div class="row col-md-12">
                <p class="de_topic" style="margin-top: 5px;">Personal Information</p>

                <div class="form-group adult_space col-md-6 col-xs-6 respo_pdin">
                    <label class="col-sm-4 control-label adult_topic de_fname respo_pdin">First name</label>
                    <div class="col-sm-8 respo_pdin">
                    <div class="input-group adult_group">
                        <input type="text" class="form-control adult_input" value="{{$GetAdultDetail['adult_first_name']}}" name="adults[{{$count}}][first_name]" aria-label="...">
                    </div><!-- id[{{$GetAdultDetail['id']}}]['fname'] /input-group -->
                        </div>
                    </div>

                    <div class="form-group adult_space col-md-6 col-xs-6 respo_pdin">
                        <label class="col-sm-4 control-label adult_topic de_fname respo_pdin">Last name</label>
                            <div class="col-sm-8 respo_pdin">
                            <div class="input-group adult_group">
                            <input type="text" class="form-control adult_input" value="{{$GetAdultDetail['adult_last_name']}}" name="adults[{{$count}}][last_name]" aria-label="...">
                            </div><!-- id[{{$GetAdultDetail['id']}}]['lname'] /input-group -->
                            </div>
                    </div>
               </div>

    ...    ...
    ...    ...
    ...    ...

        </div>
    </div>
@endforeach
            <div class="panel panel-default in_panel">

                <input type="submit" value="Save" name="AdultSaveNow" class="btn btn-default fghkl de_save AdultSaveNow" id="AdultSaveNow">
                </div>
            </div>
</form>

In the Controller : 控制器中

<?php
...
...

public function UserBookingDetailsUpdate(Request $request)
{
    $adults = $request->input('adults');
    foreach($adults as $adult) {
        $adult_users = PassengerAdultDetails::find($adult['id']);
        $adult_users->adult_first_name = $adult['first_name'];
        $adult_users->adult_last_name  = $adult['last_name'];
        $adult_users->adult_gender     = $adult['gender'];
        $adult_users->update();

    }

    return redirect()->back();

}

In the Route : 路线中

Route::put('/UserBookingDetailsUpdate', 'PaymentController@UserBookingDetailsUpdate');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM