Метод POST <form>не работает внутри @foreach для блейд-файла в laravel 5.6 - PullRequest
0 голосов
/ 06 июля 2018

Кнопка не работает после использования формы внутри @foreach. Любое предложение о том, как использовать форму внутри цикла @foreach?

Возможно ли вообще использовать форму внутри цикла в файле лезвия Laravel?

вот мой код моего файла лезвия ларавеллы. Я использовал форму внутри foreach для получения данных о сумме книги. Любое предложение о том, как решить эту проблему?

@extends('layouts.app')

@section('content')
<div class="container">
  <h1>Items On Cart:</h4>
    <div class="row justify-content-center">
        <div class="col-md-12">
            <div class="card">
                <div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            {{ session('status') }}
                        </div>
                    @endif
                        <table style="border-collapse: collapse;width: 100%;">
                        <tr style="border: 1px solid #dddddd;text-align: left;padding: 8px;font-size:20px;color: gray">
                            <th>Book Name</th>
                            <th>Author Name</th>
                            <th>Book Amount</th>
                            <th>Price</th>
                            <th>Action</th>
                            <th>Action</th>
                        </tr>
                        @foreach($cart_items as $data)
                        <form action="{{ route('change_item_amount',[$cart_info->id,$data->book_id]) }}" method="POST">
                        <tr>
                            <th>{{ show_books_name($data->book_id) }}</th>
                            <th>{{ show_books_author($data->book_id)  }}</th>
                            <th><input type="number" name="amount" id="amount" value="{{ $data->item_amount }}"></th>
                            <th>{{ $data->price }} tk</th>
                            <th><button type="submit" class="btn btn-success">Change</button></th>
                            <th><a class="btn btn-success" href="{{ route('delete_book',[$cart_info->id,$data->book_id] ) }}">Delete</a></th>
                            </form>
                                @endforeach
                                </table>
                            </div>
                            <h2 style="padding-left:865px">Total = {{ $cart_info->total_price }} tk</h2>
                        </div>
                    </form>
                </div>
            </div>
  </div>
@endsection

1 Ответ

0 голосов
/ 06 июля 2018

Самое простое решение может быть: поместите тег формы в td, (кстати, это должно быть td, а не th, вы используете th в thead):

<table style="border-collapse: collapse;width: 100%;">
    <tr style="border: 1px solid #dddddd;text-align: left;padding: 8px;font-size:20px;color: gray">
        <th>Book Name</th>
        <th>Author Name</th>
        <th>Book Amount</th>
        <th>Price</th>
        <th>Action</th>
        <th>Action</th>
    </tr>
@foreach($cart_items as $data)
    <tr>
        <td>{{ show_books_name($data->book_id) }}</td>
        <td>{{ show_books_author($data->book_id)  }}</td>
        <td>&nbsp; <!-- Here we have empty td now --> </td>
        <td>{{ $data->price }} tk</td>
        <td>
            <!-- Form is here now -->
            <form action="{{ route('change_item_amount',[$cart_info->id,$data->book_id]) }}" method="POST">
                <input type="number" name="amount" id="amount" value="{{ $data->item_amount }}">
                <button type="submit" class="btn btn-success">Change</button>
            </form>
        </td>
        <td><a class="btn btn-success" href="{{ route('delete_book',[$cart_info->id,$data->book_id] ) }}">Delete</a></td>
@endforeach
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...