我尝试用 laravel 和 ajax 创建 eshop。我有使用 ajax 制作卡片的 product.blade.php 文件。我想在其他页面中显示每个产品详细信息。所以我需要将 element._id 传递给我的路线。 这是我的路线:
Route::get('/products-list/detail/{$id}', [ProductController::class,'detail'])->name('pro.detail');
这是我的脚本部分:
<script>
var databaseResponse = []///db records
var pagesNumbers = '' ///count of pages
var pageSize = 9 ///count of rows in each page
var total = '' ///length of db records
var currentPage = 1 ///page that has active class
var ionResult =[]
var responseFromIon = []
var MaxPrice = 0
var MinPrice = 0
var priceMax = 0;
var priceMin = 0;
$(document).ready (function () {
expDate = $("#expDate").find(":selected").val()
var Url = '{{ route('pro.list') }}'
var settings = {
"url": Url,
"method": "GET",
"timeout": 0,
"headers": {
"Content-Type": "application/json"
},
};
$.ajax(settings).done(function (response) {
total = response.length
databaseResponse = response
createItems(databaseResponse)
createCards(1,databaseResponse)
ControllIonSlider()
});
function createCards(currentPage,databaseResponse){
maxItemNo = currentPage * pageSize > total ? total : currentPage * pageSize
dataSlice = databaseResponse.slice((currentPage - 1) * pageSize , (currentPage * pageSize))
var html = ''
dataSlice.forEach((element, key) => {
{{--var url = '{{ route("pro.detail", ":id") }}';--}}
{{--url = url.replace(':id', element._id);--}}
// console.log(url)
cards = '<div class="card-deck px-2" id=""><div class="card my-2"><img class="card-img-top img" style="height: 350px;width: 260px" src="' + element.image_path + '" alt="Card image cap" ><div class="card-body"><h5 class="card-title text-center titleOfPro noWrap">' + element.name + '</h5></div><div class="card-footer"><small><i class="fa fa-money-bill text-muted float-left"></i><span class="price float-right">قیمت: ' + element.price + '<span style="font-size: 1.1rem;"></span> تومان</span></small></div><div class="card-footer"><small class="text-muted"><a href=""><i class="fa fa-shopping-cart text-muted float-left"></i></a>**<a class="card-info" href="">**<i class="fa fa-info text-muted float-right"></i></a></small></div></div></div>'
html += cards
findMaxAndMin(element)
})
$(".productshowlist .card").html(html)
}
我尝试将
element._id
作为路线鼻涕虫传递给<a class="card-info" href="">
我需要这样的东西作为 href 地址:
/产品列表/详情/028151sf2
你可以这样通过:
var Url = '{{ route('pro.detail', 1) }}
或
var Url = baseUrl+"/products-list/detail/"+id