Кнопка «Удалить» в al oop с тем же идентификатором в Laravel приложении - PullRequest
0 голосов
/ 29 января 2020

Добрый день. В моем приложении laravel есть список элементов с двумя разными кнопками. Один для обновления, а другой удаляет. Я использую форму (с методами POST) для двух кнопок. Итак, в основном, у меня есть две формы на странице. Кнопка «обновить» работает довольно хорошо. Но кнопка удаления продолжает давать мне тот же идентификатор, когда я "dd" запрос. Я использую javascript для отправки формы «Удалить», потому что я хочу использовать сладкое оповещение для пользователя, чтобы подтвердить удаление. Код показан ниже. Пожалуйста, что может быть не так с этим. Кроме того, я буду рад, если смогу найти лучший способ сделать это.

Это мои формы


                            <form action="{{route('update.cart')}}" method="POST">
                            {{csrf_field()}}
                                <input type="hidden" name="id" value="{{$product->id}}">
                            <td class="product-quantity"><input type="number" name="quantity" value="{{$product->quantity}}"></td>

                                <td class="product-subtotal">₦{{$product->price * $product->quantity}}</td>
                            <td class="product-remove">
                                <input type="submit" class="login-btn" value="Update"  style="width:90px!important;text-transform: none!important;">

                            </form>

                            <form style="display: inline!important;" action="{{route('remove.cart')}}" method="POST" name="myForm" id="myForm">
                                {{csrf_field()}}
                                <?php
                                $id = $product->id;
                                ?>
                              <input type="hidden" name="cart_id" value="<?php echo $id?>">
                            <button href="#" id="remove" type="button" onclick="removeItem({{$product->id}})"><i class="fa fa-trash" aria-hidden="true"></i></button>

                            </form>

                        </td>

Мой Javascript Код для отправки формы

    function removeItem(clicked){
        document.getElementById('myForm').submit();

    }

Контроллер Это дает мне тот же идентификатор в моем контроллере, независимо от нажатой кнопки

        $item = $request->cart_id;
        dd($item);

    }

Ответы [ 3 ]

0 голосов
/ 29 января 2020

Вы можете использовать AJAX для отправки запроса вашему контроллеру и добавления подсластителя в функцию успеха, предоставляемую ajax.

HTML FORM

<form style="display: inline!important;" action="{{route('remove.cart')}}" method="POST" name="myForm" id="myForm">
     {{csrf_field()}}
     <?php
        $id = $product->id;
        ?>
        <input type="hidden" name="cart_id" value="<?php echo $id?>">
         <button href="#" id="remove" type="button" onclick="removeItem({{$product->id}})"><i class="fa fa-trash" aria-hidden="true"></i></button>

</form>

JQUERY

    var id = $('cart_id').value();
    $('#myForm').onSubmit(function(e){
        e.preventDefault();
        $.ajax({
         method:'POST',
         url:"your link",
         data:{
                id
              },
         success: function(result)
         {
              sweetalert();
         }
         error: function(err) {}


        })
    })
}
0 голосов
/ 29 января 2020

Спасибо всем. Изменили мою форму и javascript, чтобы отразить корректировки.

Форма

                                {{csrf_field()}}
                                <?php
                                $id = $product->id;
                                ?>
                              <input type="hidden" name="cart_id" value="<?php echo $id?>">
                            <button href="#" type="button" onclick="removeItem({{$product->id}})"><i class="fa fa-trash" aria-hidden="true"></i></button>

                            </form>

И мой JS

    function removeItem(clicked){


        document.getElementById('myForm'+clicked).submit();

    }

</script>
0 голосов
/ 29 января 2020

Вы используете идентификатор myForm для каждой формы удаления. Странице разрешается иметь идентификатор только один раз, поскольку он у вас есть несколько раз, он всегда отправляет первый.

Либо удалите javascript и разрешите форме отправлять напрямую, либо добавьте уникальные идентификаторы для каждой формы. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...