在刀片语法上传递javascript变量
我在使用laravel将变量传递到blade语法时遇到了一个问题,这是js代码在刀片语法上传递javascript变量,javascript,laravel-blade,Javascript,Laravel Blade,我在使用laravel将变量传递到blade语法时遇到了一个问题,这是js代码 var e = document.getElementById("select-city"); var idCity = e.options[e.selectedIndex].value; var map = L.map('map').setView([{{ $region->cities->find(idCity)->lat }}, 10.2941], 15); 因此,我想将idCityjsva
var e = document.getElementById("select-city");
var idCity = e.options[e.selectedIndex].value;
var map = L.map('map').setView([{{ $region->cities->find(idCity)->lat }}, 10.2941], 15);
因此,我想将idCityjsvar作为find()方法的参数传递。我将解释使用ajax进行此操作。 函数名和变量名只是一个例子。你可以自己修改 在routes.php文件中
Route::post('/regionCitiesFind', "yourController@finderOrSomething");
在你的控制器里
public static function finderOrSomething( Request $request){
$result $region->cities->find( $request->idCity )->lat; // as your code
return $result;
}
在您的视图中(刀片)-用于ajax
var e = document.getElementById("select-city");
var idCity = e.options[e.selectedIndex].value;
$.ajax({
type: "post",
url: "./regionCitiesFind",
headers: { 'X-CSRF-Token': "{{ csrf_token() }}" },
data: "_token={{ csrf_token() }}&idCity="+id,
success: function(msg){
var map = L.map('map').setView([ msg, 10.2941];
}
});
我试图解释在laravel中使用ajax的主要结构。您的项目可能存在语法错误或缺少某些内容。为了进一步说明@Erkan的答案,我总是将blade代码用双引号括起来并分配给var,如下所示:
var v = "{{ $region->cities->find(idCity)->lat }}";
然后您可以使用v、parseFloat、parseInt等执行任何操作。find()方法是php端吗?@ErkanÖzkök是的,所以您不能使用这种方法。您应该使用ajax获取$region->cities->find(idCity);结果。@ErkanÖzkök的问题是,我对如何使用ajax没有想法。