簡體   English   中英

在 laravel 刀片路由中使用 JavaScript 變量

[英]Using JavaScript variables inside laravel blade routes

我有一段視圖代碼,其中包含來自對 Ajax 的“.get”請求的數據。 .get 請求將一些 PHP 代碼傳遞給控制器​​,該控制器從查詢中檢索結果並將它們存儲在 JS 對象“bookingObj”中。

問題是,我想使用由查詢檢索並存儲在此對象中的一些 id 作為通往另一個 Laravel 函數“編輯”的路由的參數。 目前,當我嘗試將這些變量連接到刀片輔助函數中時,我沒有得到它們的實際值,只是逐字逐句地得到變量名。

例如,這在我的代碼中:

<a href="{{ route("bookings.edit", [' + bookingObj.id + ',' + bookingObj.tour_id + ',' + bookingObj.datedtour_id + ']) }}">

// 在 chrome 檢查器中返回這個

<a href="http://localhost/laravel/bookings/ + bookingObj.id + /edit/ + bookingObj.tour_id + / + bookingObj.datedtour_id + ">Edit</a>

我希望看到整數(來自數據庫的 ID)代替“bookingObj”屬性。

任何人都知道我是否必須使用任何轉換函數來顯示它,或者可能願意嘗試解釋問題所在?

非常感謝!

這是我的其余代碼:

$.get(url + variable, function(data){

                    console.log('Call complete');

                    //success data

                    $('tr#bookingstable').remove();

                    $.each(data, function(index, bookingObj){
                        var startdate = new Date(bookingObj.datedtourstartdate.replace(/-/g,"/"));
                        var enddate = new Date(bookingObj.datedtourenddate.replace(/-/g,"/"));

                       $('table').append(
                            '<tr id="bookingstable"><td scope="row"><a href="{{ route("bookings.show", $booking->id) }}">' + bookingObj.name + '</a></td><td scope="row">' + bookingObj.size + '</td><td scope="row">' + bookingObj.tour_name + '</td><td scope="row">' + bookingObj.category_name + '</td><td scope="row">' + bookingObj.continent_name + '</td><td scope="row">' + dateFormat(startdate, "dd.mm.yyyy") + '&nbsp; - &nbsp;' + dateFormat(enddate, "dd.mm.yyyy") + '</td><td scope="row"><li class="tiny success button"><a href="{{ route("bookings.edit", [' + bookingObj.id + ',' + bookingObj.tour_id + ',' + bookingObj.datedtour_id + ']) }}">Edit</a></li></td><td scope="row"><form method="post" name="_token" value="<?php echo csrf_token(); ?>" action="{{ route("bookings.destroy", ["id" => $booking->id]) }}">{!! csrf_field() !!}<input type="hidden" name="_method" value="DELETE"><input type="hidden" name="booking_id" value="{!! $booking->id !!}"><input type="submit" class="tiny alert button" value="Delete"></form></td></tr>'
                        ); // end append

                   }); // end each

               }); // end get

謝謝,

問候,

羅伯特

英國倫敦

這里的問題是 PHP 被渲染並與服務器的響應一起發送。 這意味着它對您的 JavaScript 一無所知。

有一些包旨在替代客戶端的功能,或者您可以編寫自己的輔助函數來解決它。

但是,不幸的是,您將無法實現這種精確的模擬。

假設您的變量名稱是“post_url”,其中您擁有要在 Ajax 中用作發布數據的 url 的動態 url。 比這樣做:

let url = "{{ route('old_url') }}"; 

url = url.replace('old_url', post_url);

$.ajax({
    type:'POST',
    url:url,
    data:{field_name:field_value},
    success:function(data){
             
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM