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

时间:2017-08-17 05:43:25

标签: javascript php jquery ajax twitter-bootstrap

查看代码:

<div class="price">
<form name="priceform" >
      <div class="modal fade" id="price">
      <div class="modal-dialog">
      <div class="modal-content">
      <div class="modal-header">
      <button type="button" class="close" data-dismiss="modal"><span 
      aria-hidden="true">×</span><span class="sr-only">Close</span>
      </button>
      <h4 class="modal-title">Selling Information</h4>
      </div>
      <div class="modal-body" id="modal-content">     
      <input type="hidden" name="_token" value="{{ csrf_token() }}">
      <div class="row">
      <div class="col-sm-12">
      <b>Listing Information</b>
      <h6>Seller SKU ID  <a href="#" class='my-tool-tip' data-
   toggle="tooltip" data-placement="right" title="Unique identifier 
   for the listings">
      <span class="glyphicon glyphicon-info-sign" style="color:
      #337AB7"></span>
      </a></h6>
      <input type="text" name="skuid" id="skuvalue" class="pricevalue"/>
      </div>
      </div>
      <br/>
      <br/>
      <div class="row">
      <div class="col-sm-12">
      <b>Status Details</b>
      <h6>Listing Status  <a href="#" class='my-tool-tip' data-
      toggle="tooltip" data-placement="right" title="Inactive listings 
      are not available for buyers on Flipkart">
      <span class="glyphicon glyphicon-info-sign" 
       style="color:#337AB7"></span>
        </a></h6>
      <select id="dropDownId" name="listingStatus">
      <option selected disabled>--Choose here--</option>
      <option value="Active">Active</option>
      <option value="Inactive">Inactive</option>
      </select>
      </div>
      </div>
       <br/>
      <br/>
      <div class="row">
      &nbsp;&nbsp;&nbsp;&nbsp;<b>Price Details</b>
      <div class="col-sm-12">
      <div class="col-sm-6">
      <h6>MRP  <a href="#" class='my-tool-tip' data-toggle="tooltip" 
    data-placement="right" title="Maximum retail price of the 
      product">
      <span class="glyphicon glyphicon-info-sign" style="color:
      #337AB7"></span>
      </a></h6>
      <input type="text" name="mrp" id="mrpvalue" class="check-fill"/>
      </div>
      <div class="col-sm-6">
      <h6>Your Selling Price   <a href="#" class='my-tool-tip' data-
       toggle="tooltip" data-placement="right" title="Price at which 
         you want to sell this listing">
      <span class="glyphicon glyphicon-info-sign" 
      style="color:#337AB7"></span>
      </a></h6>
      <input type="text" name="selprice" id="selpricevalue" 
       class="check-fill"/>
      </div>
      </div>
      </div>
      <br/>
      <br/>
      <div class="row">
      &nbsp;&nbsp;&nbsp;&nbsp;<b>Inventory Details</b>
      <div class="col-sm-12">
      <div class="col-sm-6">
      <h6>Fulfilment By  <a href="#" class='my-tool-tip' data-
        toggle="tooltip" data-placement="right" title="Fullfilment of 
           FA listings will be managed by Flipkart ">
      <span class="glyphicon glyphicon-info-sign" style="color:
      #337AB7"></span>
      </a></h6>
      <select id="5" name="fulfillment">
      <option selected disabled>Choose here</option>
      <option value="Seller">Seller</option>
      </select>
      <br/>
      <h6>Procurement SLA  <a href="#" class='my-tool-tip' data-
        toggle="tooltip" data-placement="right" title="Time required 
      to keep the product ready for dispatch">
      <span class="glyphicon glyphicon-info-sign" 
        style="color:#337AB7"></span>
      </a></h6>
      <input type="text" name="sla" class="check-fill"/>Days
      <br/>
          <h6>Stock available for Buyers  <a href="#" class='my-tool-
       tip' data-toggle="tooltip" data-placement="right" title="Number 
     of items available for cutomer to buy after detecting pending 
     orders" >
      <span class="glyphicon glyphicon-info-sign" style="color:
     #337AB7"></span>
      </a></h6>
      <input type="text" name="available" readonly/>
      </div>
      <div class="col-sm-6">
      <h6>Procurement Type  <a href="#" class='my-tool-tip' data-
      toggle="tooltip" data-placement="right" title="Information on 
       how the inventory is procured by the seller to fulfill an 
     order">
      <span class="glyphicon glyphicon-info-sign" 
           style="color:#337AB7"></span>
      </a></h6>
      <select name="procurementType">
      <option selected disabled>--Choose here--</option>
      <option value="instock">instock</option>
      </select>
      <br/>
      <h6>Stock  <a href="#" class='my-tool-tip' data-toggle="tooltip" 
      data-placement="right" title="Number of items you have in 
      stock">
      <span class="glyphicon glyphicon-info-sign" style="color:
       #337AB7"></span>
      </a></h6>
      <input type="text" name="stock" />
      <br/>
      </div>
      </div>
      </div>
      <br/>
      <br/>
      <div class="row">
      &nbsp;&nbsp;&nbsp;&nbsp;<b>Delivery charge to customer</b>
      <div class="col-sm-12">
      <div class="col-sm-4">
      <h6>Local Delivery Charge  <a href="#" class='my-tool-tip' data-
       toggle="tooltip" data-placement="right" title="Delivery charge 
     you want charge a buyer in the same city for listings which are 
     not Flipkart Assured">
      <span class="glyphicon glyphicon-info-sign" 
     style="color:#337AB7"></span>
      </a></h6>
      <input type="text" name="local" />
      </div>
      <div class="col-sm-4">
      <h6>Zonal Delivery Charge  <a href="#" class='my-tool-tip' data-
      toggle="tooltip" data-placement="right" title="Delivery charge 
    you want charge a buyer in the same zone for listings which are 
      not Flipkart Assured">
      <span class="glyphicon glyphicon-info-sign" style="color:
        #337AB7"></span>
      </a></h6>
      <input type="text" name="zonal" />
      </div>
      <div class="col-sm-4">
      <h6>National Delivery Charge  <a href="#" class='my-tool-tip' 
       data-toggle="tooltip" data-placement="right" title="Delivery 
      charge you want charge a buyer outside your zone for listings 
       which are not Flipkart Assured">
      <span class="glyphicon glyphicon-info-sign" 
      style="color:#337AB7"></span>
      </a></h6>
      <input type="text" name="national" />
      </div>
      </div>
      </div>
      <br/>
      <br/>
      <div class="row">
      &nbsp;&nbsp;&nbsp;&nbsp;<b>Packaging Details</b>
      <div class="col-sm-12">
        <div class="col-sm-3">
      <h6>Package Weight  <a href="#" class='my-tool-tip' data-
      toggle="tooltip" data-placement="right" title="Weight of the 
            final package in kgs">
      <span class="glyphicon glyphicon-info-sign" style="color:
     #337AB7"></span>
      </a></h6>
      <input type="text" name="weight" />Kgs
      </div>
      <div class="col-sm-3">
      <h6>Package Length  <a href="#" class='my-tool-tip' data-
          final package in cms">
      <span class="glyphicon glyphicon-info-sign" 
       style="color:#337AB7"></span>
      </a></h6>
      <input type="text" name="length" />cms
      </div>
       <div class="col-sm-3">
      <h6>Package Breadth  <a href="#" class='my-tool-tip' data-
       toggle="tooltip" data-placement="right" title="Breadth of the 
         final package in cms">
         <span class="glyphicon glyphicon-info-sign" style="color:
      #337AB7"></span>
      </a></h6>
      <input type="text" name="breadth" />cms
      </div>
      <div class="col-sm-3">
      <h6>Package Height  <a href="#" class='my-tool-tip' data-
          toggle="tooltip" data-placement="right" title="Height of the 
         final package in cms">
      <span class="glyphicon glyphicon-info-sign" 
         style="color:#337AB7"></span>
      </a></h6>
      <input type="text" name="height" />cms
      </div>
      </div>
      </div>
      <br/>
      <br/>
      <div class="row">
      <div class="col-sm-12">
      <b>Tax Details</b>
      <h6>HSN  <a href="#" class='my-tool-tip' data-toggle="tooltip" 
             data-placement="right" title="code of your product for 
     determining applicable tax rates">
      <span class="glyphicon glyphicon-info-sign" style="color:
        #337AB7"></span>
      </a></h6>
      <input type="text" name="hsn" />
      <a href="#">Find relevant HSN codes</a>
      </div>
      </div>
       <br/>
      <br/>
      <input type="submit" id="priceSave" class="save" value="Save" 
      style="border-radius: 8px; padding: 5px 15px; ">
</form>
</div>
<div class="modal-footer">
    <button type="button" class="btn btn-info" data-
   dismiss="modal">Close</button>
    <!--<button type="submit" id="priceSave" class="save" 
    style="border-radius: 8px; padding: 5px 15px; 
        display:none;">Save</button>-->
</div>

<div>
<!-- /.modal-content -->
</div>
<div>
<!-- /.modal-dialog -->
</div>

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

脚本代码:

<script src = 
"https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script type="text/javascript">
$(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);
    }*/                        
});
});
});
</script>

这是我试过的剧本。

ROUTE CODE:

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,也用于将某些值重定向到视图

2 个答案:

答案 0 :(得分:1)

尝试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);
}

答案 1 :(得分:1)

您的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
    ]);

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