2016-08-04 3 views
0

cart.blade.phpВложенный HTML formBuilder с Laravel

@extends('master') 

@section('content') 
    <div class="container"> 
     @if(Cart::isEmpty()) 
      <b>The card is empty</b> <a href="/products">Shopping now</a> 
     @else 
      <table class="table table-condensed table-bordered"> 
       <thead> 
        <tr> 
         <th>item id</th> 
         .... 
        </tr> 
       </thead> 
       <tbody> 
        {!! Form::open(["url"=>"/pay"]) !!} 
        <?php $i = 0; $totalCart_price = 0; ?> 
        @foreach($cart_total_items as $item) 
         <tr> 
          <td>{{ $item['id'] }}</td> 
          .... 
          <td> 
           {!! Form::open(["url"=>"/my-cart/".$item['id'], "method"=>"DELETE", "style"=>"display: inline"]) !!} 
            <button type="submit" class="btn btn-danger" aria-label="Left Align"> 
             <span class="glyphicon glyphicon-remove" aria-hidden="true"></span> 
            </button> 
           {!! Form::close() !!} 
          </td> 
         </tr> 
         <?php $i++; $totalCart_price += Cart::get($item['id'])->getPriceSum(); ?> 
        @endforeach   
       </tbody> 
      </table> 
      <b>Total price: ${{ $totalCart_price }} {{ Form::hidden("total_price", $totalCart_price) }}</b> 
      <br><br> 
      {!! Form::submit('check out (paypal)', ["class"=>"btn btn-primary"]) !!} 
      {!! Form::close() !!} 
      <a href="/my-cart/clear" class="btn btn-danger">Clear cart</a> 
     @endif 
    </div> 
@stop 

Выпуск: Я могу удалить любой элемент, но во время нажмите проверить ничего не происходит, но когда я удалить clear item form, проверить пробег успешно.

Я хочу запустить две операции, как я могу ее решить?
Thanks

ответ

0

Вы можете иметь несколько форм на странице, но они не должны быть вложенными.
, как указано в html5 working draft:

4.10.3 Форма элемента

Содержание Модель:

Содержание потока, но без каких-либо элементов формы потомков.

Насколько я знаю, форма - это только теги html, которые могут быть использованы для отправки группы (массива) данных сразу на сервер.
В вашем случае вам лучше всего будет использовать AJAX запрос (хотя бы сделать нашу страницу яваскрипта зависимый)
Или, как я заметил, что вы можете просто отделить две формы, как показано ниже:.

@extends('master') 

@section('content') 
    <div class="container"> 
     @if(Cart::isEmpty()) 
      <b>The card is empty</b> <a href="/products">Shopping now</a> 
     @else 
      <table class="table table-condensed table-bordered"> 
       <thead> 
        <tr> 
         <th>item id</th> 
         .... 
        </tr> 
       </thead> 
       <tbody> 
        <<!-- Remove the Form tag from here and insert it below -->> 
        <?php $i = 0; $totalCart_price = 0; ?> 
        @foreach($cart_total_items as $item) 
         <tr> 
          <td>{{ $item['id'] }}</td> 
          .... 
          <td> 
           {!! Form::open(["url"=>"/my-cart/".$item['id'], "method"=>"DELETE", "style"=>"display: inline"]) !!} 
            <button type="submit" class="btn btn-danger" aria-label="Left Align"> 
             <span class="glyphicon glyphicon-remove" aria-hidden="true"></span> 
            </button> 
           {!! Form::close() !!} 
          </td> 
         </tr> 
         <?php $i++; $totalCart_price += Cart::get($item['id'])->getPriceSum(); ?> 
        @endforeach   
       </tbody> 
      </table> 
      <<!-- Remove the Form tag from above and insert it below -->> 
      {!! Form::open(["url"=>"/pay"]) !!} 
      <b>Total price: ${{ $totalCart_price }} {{ Form::hidden("total_price", $totalCart_price) }}</b> 
      <br><br> 
      {!! Form::submit('check out (paypal)', ["class"=>"btn btn-primary"]) !!} 
      {!! Form::close() !!} 
      <a href="/my-cart/clear" class="btn btn-danger">Clear cart</a> 
     @endif 
    </div> 
@stop 
+0

использования AJAX отличная идея, но нет возможности сделать перекрытие между двумя операциями? –

+0

Нет. Но вы можете проверить мой ответ. Я думаю, вы можете достичь того, чего хотите, не перекрывая формы. – jaysingkar

+0

Пожалуйста, исправьте меня, если я ошибаюсь. Ответ был основан на том, что я наблюдал в вашем коде. Я разделил две формы, не теряя тех функций, которые вы хотели достичь. – jaysingkar

 Смежные вопросы

  • Нет связанных вопросов^_^