如何将 ajax 参数作为 laravel 路由参数发送?

问题描述 投票:0回答:1

我尝试用 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

jquery ajax laravel mongodb laravel-routing
1个回答
0
投票

你可以这样通过:

var Url = '{{ route('pro.detail', 1) }}

var Url = baseUrl+"/products-list/detail/"+id
© www.soinside.com 2019 - 2024. All rights reserved.