在刀片语法上传递javascript变量

在刀片语法上传递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

我在使用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);

因此,我想将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没有想法。