在Laravel中如何在单个数据库单元格中添加多个下拉值作为对象

时间:2018-06-10 10:58:52

标签: javascript ajax laravel

这是一个包含多个值的下拉列表:

<select multiple size="4" name="darha[]">
@foreach($doors as $door)
<option value="{ image: '{{ $door->image }}'; code: '{{ $door->code }}'}"{{ $door->code }}</option>
 @endforeach
</select>

这是我在商店中的控制器功能:

$product->darha = implode(', ', $request->darha);

表中插入的数据如下:

{ image: '1527585419301-Door-T-D.jpg'; code: '301-Door-T-D' }, { image: '1527851661402-Door-A-T.jpg'; code: '402-Door-A-T' }

以下是如何访问每个对象值或属性的问题。我的意思是,我如何访问图像或代码值?

1 个答案:

答案 0 :(得分:0)

您的json格式无效。

您的json格式存在三个问题:

1)如果你想拥有一些对象,你需要将它们包在括号[]

2)你的json键和值必须是双引号而不是单引号!

3)密钥之间的分隔符必须为,而不是;

<小时/> 所以尝试嵌入你的json字符串:

<option value='{"image":"{{ $door->image }}", "code": "{{ $door->code }}"}'>{{ $door->code }}</option>

如果你有一个像这样的json字符串:

$var = '[{ "image": "1527585419301-Door-T-D.jpg", "code": "301-Door-T-D" },{ "image": "1527851661402-Door-A-T.jpg", "code": "402-Door-A-T" }]';

您可以将其转换为json对象,如下所示:

$myObjects = json_decode($var);

然后像这样访问每个键:

$myObjects[0]->image; //'1527585419301-Door-T-D.jpg'

<强>更新

如果要从Laravel向javascript发送json字符串,它将自动转换为json对象。

假设你从Laravel下面的json字符串返回到js:

$var = '{"image": "1527585419301-Door-T-D.jpg", "code": "301-Door-T-D" }';
return $var;

在js方面,您可以访问以下属性:

var $darha = data.image; // '1527585419301-Door-T-D.jpg'