如何在jquery变量中存储会话数组? Laravel / Jquery

时间:2017-06-27 11:12:05

标签: javascript php jquery arrays session

我正在尝试将会话数组存储在jquery变量中。

我的代码:

<script>
@if(session()->has('zoektermen'))
    var zoektermen = '{{ session()->get('zoektermen') }}';
    console.log(zoektermen);
@endif
</script>

在控制器内部进行会话:

if(isset($_GET['searchquery'])) {
    $searchquery = $_GET['searchquery'];
}

if(session()->has('zoektermen')) {
    session()->forget('zoektermen');
    session()->put('zoektermen', $searchquery);
} else {
    session()->put('zoektermen', $searchquery);
}

但是我收到一个错误,因为{{}}需要一个字符串而不是一个数组。

htmlspecialchars() expects parameter 1 to be string, array given

将数组从会话存储到JS数组的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

这样做

<script>
@if(session()->has('zoektermen'))
    var zoektermen = '{{json_encode(session()->get("zoektermen"))}}';
     zoektermen= $.parseJSON(zoektermen);
    console.log(zoektermen);
@endif
</script>

我会帮助你。

答案 1 :(得分:1)

使用php json_encode并在JS中解码以获取JavaScript中的PHP数组

<script>
@if(session()->has('zoektermen'))
    var zoektermen_json = "{{ json_encode(session()->get('zoektermen')) }}";
    var zoektermen = JSON.parse(zoektermen_json);
    console.log(zoektermen);
@endif
</script>