【问题标题】:How do i store a session array inside jquery variable? Laravel / Jquery如何在 jquery 变量中存储会话数组? Laravel / jQuery
【发布时间】:2017-11-30 10:07:51
【问题描述】:

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

【问题讨论】:

  • 用其他刀片试试{!! !!}看看。
  • 你不能使用php数组来JS。您必须转换为 JSON,然后您才能在那里使用
  • @PandhiBhaumik 相同的错误数组到字符串的转换
  • 那么您可能没有正确执行...将任何数据对象编码为 JSON 给您一个字符串值。
  • 您的代码不足以解决此问题,请粘贴导致错误的全部或相关代码。

标签: javascript php jquery arrays session


【解决方案1】:

这样做

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

我想它会对你有所帮助。

【讨论】:

  • 在此处转义引号或使用双引号 '{{json_encode(session()-&gt;get('zoektermen'))}}'
【解决方案2】:

使用phpjson_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>

【讨论】:

  • 我收到此错误:SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
  • @JordyGroote :将{{ ... }} 替换为{!! ... !!} 后会发生什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多