You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel控制器返回数组后,如何在input中存储并通过JQuery读取为数组?

解决PHP数组存入Hidden Input后jQuery读取报错的问题

问题原因

直接在Blade模板中输出PHP数组{{ $array }}时,PHP会将数组转换为非标准的字符串(比如"Array"),导致jQuery读取后无法解析为合法的JavaScript数组,进而触发"string object invalid"错误。

解决方案

步骤1:在Blade模板中将PHP数组转为JSON格式存入Input

修改Hidden Input的value属性,用json_encode()把PHP数组转为标准JSON字符串,借助Blade的自动转义保证HTML属性的合法性:

<input class="form-control" id="id" name="id" type="hidden" value="{{ json_encode($array) }}">

步骤2:用jQuery读取并解析JSON字符串

读取Input的值后,通过JSON.parse()将JSON字符串解析为JavaScript数组:

const arrayData = JSON.parse($("#id").val());
// 此时arrayData可作为正常数组使用
console.log(arrayData);

额外注意事项

  • 若数组包含特殊字符(引号、换行符等),json_encode()会自动转义,确保存入Input的字符串是合法的HTML属性值。
  • 不要使用{!! json_encode($array) !!},关闭Blade自动转义可能引发XSS风险或HTML语法错误。

内容的提问来源于stack exchange,提问作者Nixon Darius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:36:21