如何使用ajax post请求将模态值插入db?

查看代码:

这是我的bootstrap模式。我需要将这些表单值添加到db中。 对此,我一直在使用ajax post请求。问题是,如果我评论了表单标记,则url重定向与ajax post请求一起使用。 但由于forms的评论而未添加的值。 但是当包括在内时,不会发生插入。

脚本代码:

    $(document).ready(function () { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $("#priceSave").click(function(){ $.ajax({ url: 'addPriceDetails/{{$dataId}}', type: "post", /*success:function(data) { alert(data); }*/ }); }); });  

这是我尝试过的脚本。

路线代码:

 Route::post('addPriceDetails/{dataId}','priceDetails@addPriceDetails'); 

控制器:

 public function addPriceDetails(Request $priceform,$dataId) { //echo ("1234"); $priceInfo = new priceInfo ; $priceInfo->deviceCategoryId=$dataId; $priceInfo->productId=$this->getproductId(); $priceInfo->SKUID =$priceform->input('skuid'); $priceInfo->listingStatus =$priceform->input('listingStatus'); $priceInfo->MRP =$priceform->input('mrp'); $priceInfo->sellingPrice=$priceform->input('selprice'); $priceInfo->fulfillmentBy =$priceform->input('fulfillment'); $priceInfo->procurementType =$priceform->input('procurementType'); $priceInfo->procurementSLA =$priceform->input('sla'); $priceInfo->stock =$priceform->input('stock'); $priceInfo->localDelCharge =$priceform->input('local'); $priceInfo->zonalDelCharge =$priceform->input('zonal'); $priceInfo->nationalDelCharge=$priceform->input('national'); $priceInfo->packWeight =$priceform->input('weight'); $priceInfo->packLength =$priceform->input('length'); $priceInfo->packBreadth =$priceform->input('breadth'); $priceInfo->packHeight =$priceform->input('height'); $priceInfo->HSN =$priceform->input('hsn'); $priceInfo->save(); //echo($priceInfo->SKUID); return Redirect::back()->with('SKUID',$priceInfo->SKUID)- >with('listingStatus',$priceInfo->listingStatus)- >with('MRP',$priceInfo->MRP)->with('sellingPrice',$priceInfo- >sellingPrice); } 

HERE是控制器代码,用于将模态值插入db,也用于将某些值重定向到视图

您的Javascript不会从表单中发送任何数据。 您需要收集它,并在您的AJAX调用中将其POST,如下所示:

在你的Javascript中

 $("#priceSave").click(function(e){ e.preventDefault(); var data = $('form').serialize(); $.ajax({ url: 'addPriceDetails/{{$dataId}}', type: "post", data: data, dataType: 'json', success: function(response) { alert(response.SKUID); } }); }); 

在你的控制器中

 public function addPriceDetails(Request $priceform,$dataId) { // ... all your code return response()->json([ 'SKUID' => $priceInfo->SKUID, 'listingStatus' => $priceInfo->listingStatus // ... any other fields you want to return ]); 

我不确定你为什么要返回刚发布的一些字段。 返回操作结果(例如成功或错误)然后在前端显示它会更有意义。

尝试下面的addPriceDetails()方法代码。 这不是解决方案。

 . . . $priceInfo->save(); if(!$priceInfo){ App::abort(500, 'Error'); } else { return Redirect::back()->with('SKUID',$priceInfo->SKUID)->with('listingStatus',$priceInfo->listingStatus)->with('MRP',$priceInfo->MRP)->with('sellingPrice',$priceInfo->sellingPrice); }