2017-10-14 144 views
0

Laravelで選択したチェックボックスを削除するには? フォームにはどのような方法を使用しますか? PostまたはDelete? 私はこのような私の見解を行いますLaravelで複数のチェックボックスを削除する方法

<form class="cekboxForm" id="couponList" method="post"> 
      {{ csrf_field() }} 
      <div class="col-md-12"> 
       <div class="table-responsive"> 
        <table border="1" class="table datatable table-striped table-bordered" style="" width="100%"> 
         <tbody> 
          @foreach($dealCoupons->chunk(3) as $chunked_coupons) 
          <tr> 
           @foreach($chunked_coupons as $dealCoupon) 
           <td> 
            <input type="checkbox" name="couponCheck[]" class="cekbox" value="{{$dealCoupon->CouponNo}}"> 
            <strong>{{$dealCoupon->CouponNo}}</strong> 
           </td> 
           @endforeach 
          </tr> 
          @endforeach 
         </tbody> 
        </table> 
       </div> 
      </div> 
      <div class="count"><strong>1 - {{count($dealCoupons)}}. Total {{count($dealCoupons)}} Kupon</strong> </div> 
      <div align="right"> 
       <a href="#" target="_blank"> 
        <div class="btn btn-primary">Print Coupon</div> 
       </a> 
      </div> 
     </form> 

これは

public function deleteDealCoupon(Request $request) 
{ 
    foreach($request->couponCheck as $coupon){ 
     $dealCoupon = DB::table('deal_coupons')->where('CouponNo', $coupon)->delete(); 
    } 
    return response()->json([ 
     "error" => "0", 
     "message" => "Success" 
    ]); 
} 

データを削除するための私のコントローラであり、これは、これが

Route::delete('/deal/deleteCoupons', ['as' => 'deal.deletecoupons', 'uses' => '[email protected]']); 
私のルートである私のAJAX

$('#couponList').ajaxSubmit({ 
       type: "DELETE", 
       dataType: 'json', 
       url : "{{ route('deal.deletecoupons') }}", 
       data: { 
        "_method": "delete", 
        "_token": "{{ csrf_token() }}", 
       }, 
       success : function(data){ 
        console.log(data) 
       }, 
       error : function(a,b,c){ 
        alert(b); 
       } 
      }); 

です

Iチェックされているデータを削除しようとしていますが、何も起こりません。 inspect要素からチェックしましたが、応答やエラーは送信されません。

DealCouponテーブルは

Schema::create('deal_coupons', function (Blueprint $table) { 
     $table->integer('post_id'); 
     $table->string('CouponNo'); 
     $table->boolean('IsUsed'); 
     $table->timestamps(); 
    }); 

答えて

0

あなたがRESTfulなやろう、あなたのressource URIに動詞を追加しますが、HTTP動詞のみを使用しないでください。だから、ルートは次のように命名すべきではない

'/契約/ deleteCoupons'

Iとし、これらの次のソリューション

  1. RESTfulなソリューション:

    1.1の変更へのルートのURI /契約/クーポン、HTTP DELETEを使用して呼び出します。

    1.2ウェブページajaxでは、item.foreach()を使用して、選択した各クーポンIDを削除します。クーポンを一度削除してください。

    OR json_encode選択したIDを文字列に、make/deal/CouponsにエンコードされたID配列を受け入れる。 IDの配列を削除するには、このメソッドを呼び出します。

  2. 非RESTfulなソリューション:

    2.1は、ルートURI名を保持し、json_encoded IDを取得することに明示的なのparamを追加し、ルートURIを変更

    2.2それを呼び出すためにHTTP POSTを使用します。

    $ request-> input( 'id_to_delete')を使用してjsからIDを取得します。

+0

私のテーブルではID(自動インクリメント)を使用していません。したがって、クーポンにはIDがありません。私は私の質問を編集しました。あなたは私のクーポンのテーブルを見ることができます.. –

関連する問題