Laravel - обновить несколько строк в таблице - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь обновить один столбец (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();
          }

Ответы [ 3 ]

1 голос
/ 08 мая 2019

Сначала в вашем коде нужно открыть форму перед foreach, и только строки таблицы должны быть внутри цикла

и для кнопки у вас есть новый <tr><td></td></tr> после @endforeach, и вы можете поместить кнопку внутри него.

Надеюсь, это поможет вам исправить кнопку

{!! 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() !!}
1 голос
/ 08 мая 2019

Отказ от ответственности: этот код не проверен и не является наиболее эффективным способом решения этой проблемы.Это только путевая точка, указывающая на проблему.

Вид

{!! 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]);
    }
}
0 голосов
/ 08 мая 2019

Переместить

{!! 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() !!}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...