【问题标题】:Laravel - update multiple rows in a tableLaravel - 更新表中的多行
【发布时间】:2019-05-08 10:27:23
【问题描述】:

我正在尝试更新所有可用行中的一列 (S_Rank)。我列出了表格中的行,在表格内我有下拉菜单来更改排名。我希望能够保存所有新排名。我有两个问题,第一个,提交按钮在<td> </td> 之外不起作用,我不能将提交按钮放在<td> 内,因为它会列在每一行中。我的第二个问题我不确定如何将所有更改保存到数据库中

目前的问题是我无法让按钮在<td></td> 标签之外工作,谁能帮忙

在我看来

<table id="myTable" class ="table table-striped">

<thead>
        <td><h4>Student Name</h4></td>
        <td><h4>Student Rank</h4></td>
</thead>

@foreach($applications as $application)
<tbody>
<tr>

<td><h5>{{$application->Student_Name}}</h5></td>

<td><h5>

{!! Form::open(['action' => 'AbstractsController@UpdateRank' , 'method' => 'post' ]) !!}
{{Form::select('Ranking' ,$ranks,  ['class' => 'form-control', 'placeholder' =>$application->S_Rank] )}} 
{{Form::hidden('Application_ids[]',  $application->S_ID)}}

</h5></td>

</tr>

@endforeach

</tbody>
</table>

{{Form::Submit('Save New Ranking',['class' => 'btn btn-primary'])}}
{!! Form::close() !!}

在我的控制器中

foreach(request('Application_ids') as $A_ID){
    $Application= Application::find($A_ID);
    $Application->S_Rank = 3;
    $Application->save();
          }

【问题讨论】:

  • 在表格上方打开您的表单。

标签: php laravel


【解决方案1】:

首先在您的代码中,您需要在 foreach 之前打开表单,并且只有表格的行应该在循环内

对于按钮,您在@endforeach 之后有一个新的&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;,您可以将按钮放入其中。

我希望这将帮助您修复按钮

{!! Form::open(['action' => 'AbstractsController@UpdateRank' , 'method' => 'post' ]) !!}
<table id="myTable" class ="table table-striped">

    <thead>
        <td><h4>Student Name</h4></td>
        <td><h4>Student Rank</h4></td>
    </thead>

    <tbody>
        @foreach($applications as $application)
        <tr>
            <td><h5>{{$application->Student_Name}}</h5></td>
            <td><h5>
            {{Form::select('Ranking' ,$ranks,  ['class' => 'form-control', 'placeholder' =>$application->S_Rank] )}} 
            {{Form::hidden('Application_ids[]',  $application->S_ID)}}
            </h5></td>
        </tr>
        @endforeach
        <tr>
            <td>{{Form::Submit('Save New Ranking',['class' => 'btn btn-primary'])}}</td>
        </tr>
    </tbody>
</table>
{!! Form::close() !!}

【讨论】:

  • 感谢您的回答,通过将表单放在 foreach 上方来修复按钮。
【解决方案2】:

免责声明:此代码未经测试,也不是解决此问题的最有效方法。这只是指出问题的一个途径。

查看

{!! Form::open(['action' => 'AbstractsController@updateRank' , 'method' => 'post' ]) !!}
    <table id="myTable" class ="table table-striped">
        <thead>
            <td><h4>Student Name</h4></td>
            <td><h4>Student Rank</h4></td>
        </thead>

        <tbody>

        @foreach($applications as $application)
        <tr>
            <td><h5>{{ $application->Student_Name }}</h5></td>
            <td>
                {{ Form::select('ranking[' . $application->S_ID . ']', $ranks,  ['class' => 'form-control', 'placeholder' => $application->S_Rank]) }}
            </td>
        </tr>
        @endforeach

        </tbody>
    </table>

    {{ Form::Submit('Save New Ranking', ['class' => 'btn btn-primary']) }}
{!! Form::close() !!}

控制器

public function updateRank(Request $request)
{
    foreach ($request->input('rankings') as $applicationId => $rankingId) {
        Application::where('S_ID' $applicationId)->update(['ranking' => $rankingId]);
    }
}

【讨论】:

    【解决方案3】:

    移动

    {!! Form::open(['action' => 'AbstractsController@UpdateRank' , 'method' => 'post' ]) !!}
    

    到循环和表格之外。您只想定义一次。

    {!! Form::open(['action' => 'AbstractsController@UpdateRank' , 'method' => 'post' ]) !!}
    
    <table id="myTable" class ="table table-striped">
    
    <thead>
            <td><h4>Student Name</h4></td>
            <td><h4>Student Rank</h4></td>
    </thead>
    
    <tbody>
    @foreach($applications as $application)
    <tr>
    
    <td><h5>{{$application->Student_Name}}</h5></td>
    
    <td><h5>
    
    {{Form::select('Ranking' ,$ranks,  ['class' => 'form-control', 'placeholder' =>$application->S_Rank] )}} 
    {{Form::hidden('Application_ids[]',  $application->S_ID)}}
    
    </h5></td>
    
    </tr>
    
    @endforeach
    
    </tbody>
    </table>
    
    {{Form::Submit('Save New Ranking',['class' => 'btn btn-primary'])}}
    {!! Form::close() !!}
    

    【讨论】:

      猜你喜欢
      • 2015-03-23
      • 2019-09-26
      • 2014-03-29
      • 2021-12-03
      • 2019-02-23
      • 1970-01-01
      • 2021-04-02
      • 2020-04-19
      • 1970-01-01
      相关资源
      最近更新 更多