我正在尝试将会话数组存储在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数组的正确方法是什么?
答案 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>