@sidiqi

Как получить value поля, которое выводится через foreach?

Как получить только один конкретный value?
<table class="table">
            @foreach ($files_info as $val)
                <tr>
                    <th>{{$num++}}</th>
                    <td>{{$val['filename']}}</td>
                    <td><input value="{{$val['filename']}}" name="del_file" type="text" hidden><button type="button">удалить</button></td>
                </tr>
            @endforeach
            </table>


Так получает всегда значение последнего поля, которое циклом выводится
public function del_file(Request $request)
    {
        $del_file_name = $request->input('del_file');

        dd($del_file_name);
}
  • Вопрос задан
  • 92 просмотра
Решения вопроса 1
infest
@infest
Когда задаете вопрос, описывайте что вы хотите сделать.

В данном случае вы хотите сделать кнопку "удалить" для каждой строчки таблицы, но делаете это неправильно.
У вас одна форма на всю таблицу и много input с одинаковым именем del_file, соответственно при обработке вы и получаете только последний элемент.

Вам нужна для каждой кнопки своя форма

<table class="table">
    @foreach ($files_info as $val)
        <tr>
            <th>{{$num++}}</th>
            <td>{{$val['filename']}}</td>
            <td>
                <form action="" method="post">
                    <input value="{{$val['filename']}}" name="del_file" type="text" hidden><button type="button">удалить</button>
                </form>
            </td>
        </tr>
    @endforeach
</table>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
У Вас у всех input одинаковый name, так что не удивительно, что получаете только 1. Там должен быть массив наверное, типа:
name="del_file[]"
Тогда получите массив значений
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы