我正在努力处理此代码。我无法使用ajax发送回复。 Ajax脚本在这里。
$(document).ready(function () {
$('#selectSize').change(function () {
var idSize = $(this).val();
$.ajax({
type: "get",
dataType: 'json',
url: 'getproductprice',
data: {
idSize: idSize
},
success: function (response) {
console.log("working");
},
error: function () {
console.log("error");
}
});
});
});
这是刀片标记
<select name="size" id="selectSize" style="width:150px;">
<option value="">Select Size</option>
@foreach($productDetails->attributes as $size)
<option value="{{$productDetails->id}}-{{$size->size}}">{{$size->size}}</option>
@endforeach
</select>
这是控制器代码
public function getProductPrice(Request $request)
{
$data = $request->all();
$proArr = explode("-", $data['idsize']);
$proAttr = ProductsAttribute::where(['product_id' => $proArr[0], 'size' => $proArr[1]])->first();
$getCurrencyRates = Product::getCurrencyRates($proAttr->price);
echo $proAttr->price . "-" . $getCurrencyRates['USD_Rate'] . "-" . $getCurrencyRates['GBP_Rate'] . "-" . $getCurrencyRates['EUR_Rate'];
echo "#";
echo $proAttr->stock;
}
我不知道,当我选择选项值时,我在做什么错。 错误会来。
“试图获取非对象的属性“图像”(查看: C:\ xampp \ htdocs \ wrost \ resources \ views \ shop \ product-details.blade.php)“
答案 0 :(得分:1)
您的ajax
应该是-
$.ajax({
url: 'getproductprice',
type: 'POST',
data: {idSize: idSize},
beforeSend: function (request) {
return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content'));
},
success: function (response) {
console.log(response);
},
error: function (err) {
console.log(err);
alert("Something Went Wrong, Please check again");
}
});
答案 1 :(得分:0)
首先请确保您为meta tag
添加了csrf
<meta name="csrf-token" content="{{ csrf_token() }}">
最后,您需要在ajax对象中添加header
对象
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
会是这样
$.ajax({
type: "get",
dataType : 'json',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url:'getproductprice',
data: {idSize: idSize},
success:function(response){
console.log("working");
},
error:function(){
console.log("error");
}
});