Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在另一个文件中声明的javascript代码中声明变量?_Javascript_Php_Laravel 5 - Fatal编程技术网

如何在另一个文件中声明的javascript代码中声明变量?

如何在另一个文件中声明的javascript代码中声明变量?,javascript,php,laravel-5,Javascript,Php,Laravel 5,所以我使用的是Laravel5.5和PHP7.0 我的视图文件底部有以下内容: $("#myRange").ionRangeSlider({ type: "double", grid: true, min: {{ $minPrice }}, max: {{ $maxPrice}}, @if(isset($returnData['Ranges']) && count($returnData['Ranges']) > 0)

所以我使用的是Laravel5.5和PHP7.0

我的视图文件底部有以下内容:

$("#myRange").ionRangeSlider({
    type: "double",
    grid: true,
    min: {{ $minPrice }},
    max: {{ $maxPrice}},
    @if(isset($returnData['Ranges']) && count($returnData['Ranges']) > 0)
        from: {{ $returnData['Ranges']['0'] }},
        to: {{ $returnData['Ranges']['1'] }}
    @else
        from: {{ $minPrice }},
        to: {{ $maxPrice}}
    @endif
});
错误是$minPrice和$maxPrice未声明。但它们是在我的控制器文件中声明的

以下是我的控制器文件中的代码:

    $fees = array_unique($fees);
    $priceRanges = array();
    $minPrice = 0;
    $maxPrice = 0;
    if(count($fees) > 0){
        foreach ($fees as $key => $value) {
            $range = explode(' - ', $value);
            $priceRanges[] = $range['0'];
            $priceRanges[] = $range['1'];
        }
        $priceRanges = array_unique($priceRanges);
        $minPrice = (int) min($priceRanges);
        $maxPrice = (int) max($priceRanges);
    }

有人知道如何修复视图(前端)文件中的javascript代码来声明变量吗?我只在一个显示数据库中项目列表的特定页面上出现此错误。如果我从主页中搜索一个项目,然后查看搜索结果页面,则不会出现错误。仅在列表页面上。

使用旧的意大利面代码声明:

<?php
$minPrice = 0;
$maxPrice = 0;
?>


它们不需要暴露于JavaScript。

在您的JavaScript中,这样做

   $("#myRange").ionRangeSlider({
    type: "double",
    grid: true,
    min: @if(isset($minPrice)) {{ $minPrice }} @else 0 @endif,
    max: @if(isset($maxPrice)) {{ $maxPrice }} @else 0 @endif,
    @if(isset($returnData['Ranges']) && count($returnData['Ranges']) > 0)
        from: {{ $returnData['Ranges']['0'] }},
        to: {{ $returnData['Ranges']['1'] }}
    @else
        from: @if(isset($minPrice)) {{ $minPrice }} @else 0 @endif,
        to: @if(isset($maxPrice)) {{ $maxPrice }} @else 0 @endif
    @endif
});

如果该值存在,则将其回显,否则回显0

是否返回控制器中包含变量
$minPrice
$maxPrice
的view-listingpage?如果在PHP中声明的变量对JavaScript不感兴趣。如果JS需要一个变量,它必须在JS中声明,而不是在PHP中远程声明。@如果不是,这些变量只用于searchresults filter函数,这意味着当有人搜索某个内容,然后再过滤一点结果时。@Dormilich我如何在JS中声明它?实际上,我并没有编写代码。另一个人这样做了,但他不想花时间来帮助我,所以我假设变量需要同时存在于PHP和JS中?好吧,您仍然需要从控制器提供变量。也就是说,返回带有变量的视图<代码>返回视图('listingpage',compact('minPrice,maxPrice')鉴于此,JS代码在视图本身上,在标记等待下,现在我感到困惑。我的控制器文件中有。我可以从我的js代码中删除它吗?我会怎么处理min:和max:?谢谢你的聊天。这起作用了:)我猜@if(isset)起了作用。现在又有一个问题。在搜索结果页面上,唯一显示的是代表maxPrice的数据。它只是一个空白的白色页面,值在左上角。