简体   繁体   English

如何使用Ajax发布请求将模态值插入db?

[英]How to insert modal values into db using ajax post request?

View code: 查看代码:

<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>

This is my bootstrap modal.I need to add those form values into db. 这是我的引导模式,我需要将这些表单值添加到db中。 FOr this,I have been using ajax post request.The problem is,if I commented the form tag,the url redirection works with ajax post request. 为此,我一直在使用ajax发布请求。问题是,如果我注释了表单标签,则URL重定向可用于ajax发布请求。 But the values where not added due to commenting of form. 但是由于表单的注释,未添加值。 But when included,no insertion takes place. 但是,如果包含,则不会发生插入。

SCRIPT CODE: 脚本代码:

<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>

This is the script I have tried. 这是我尝试过的脚本。

ROUTE CODE: 路线代码:

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

Controller: 控制器:

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 is the controller code,to insert modal values into db ,also to redirect some of the values to the view 这里是控制器代码,用于将模式值插入db,还将某些值重定向到视图

Try below code for addPriceDetails() method. 尝试使用以下代码来实现addPriceDetails()方法。 This is not the solution. 这不是解决方案。

.
.
.
$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);
}

Your Javascript is not sending any of the data from the form. 您的Javascript没有从表单发送任何数据。 You need to collect that, and POST it in your AJAX call, like so: 您需要收集这些内容,并将其发布到您的AJAX调用中,如下所示:

In your Javascript 在您的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);
        }
    });
});

In your Controller 在您的控制器中

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

I am not sure why you want to return some of the fields you just POSTed back. 我不确定为什么要返回刚刚回发的某些字段。 It would make more sense to return the result of the operation, eg a success or error, and then display that on the front end. 返回操作结果(例如成功或错误),然后将其显示在前端会更有意义。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM