[英]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") + ' - ' + 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.