2017-10-14 162 views
0

如何刪除Laravel中的複選框? 我應該在表格中使用什麼方法? PostDelete? 使我的看法是這樣的:如何在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" 
    ]); 
} 

,這是我的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); 
       } 
      }); 

這是我的路線

Route::delete('/deal/deleteCoupons', ['as' => 'deal.deletecoupons', 'uses' => '[email protected]']); 

I我試圖刪除被檢查的數據,但沒有發生。 我也檢查過檢查元素,並且它不發送任何響應或錯誤。

DealCoupon表

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

回答

0

當您嘗試做REST風格,不加動詞到您的ressource URI,但只使用HTTP動詞。

所以路線不應該被命名爲 '/交易/ deleteCoupons'

我想這下面的方法解決

  1. RESTful的解決方案:

    1.1改變路線的URI /協議/優惠券,使用HTTP DELETE來調用它。

    1.2在網頁ajax中,使用item.foreach()刪除每個選定的優惠券ID。一次刪除一張優惠券。

    或json_encode將選定的ID編碼爲一個字符串,並使make/deal/Coupons接受編碼的id數組。調用它來刪除一個ID數組。

  2. 非RESTful的解決方案:

    2.1保持路線URI名稱,使用HTTP POST來調用它

    2.2修改路由URI,明確PARAM添加到它得到json_encoded的ID。

    使用$ request-> input('id_to_delete')從js獲取您的ID。

+0

我沒有使用id(自動增量)在我的表中..所以,優惠券沒有ID ..我編輯了我的問題..你可以看到我的優惠券表.. –

相關問題