[英]How to fetch data from json array in laravel
我在laravel中从json数组中获取数据时遇到麻烦。我有json数组,我想在两个不同的select选项下显示数据,但我不知道如何在json_decode()之后获取,而不是在php中使用jquery .. !!
{
"option":["Size","Color"],
"values":["L|M|S","Red|Green|Black"],
"price":["9000|8000|6000","9000|8000|6000"]
}
我想在这些选择选项下显示它,例如颜色选择选项下的颜色和laravel blade中的尺寸选择选项.. !!
您必须首先解码JSON字符串,然后使用@foreach来制作选择框。 虽然我不知道你想做什么,因为选择框选项的值对于知道哪个价格属于哪个很重要。 但这是你想要的代码:
@php
$js = '{
"option":["Size","Color"],
"values":["L|M|S","Red|Green|Black"],
"price":["9000|8000|6000","9000|8000|6000"]
}';
$js = json_decode($js);
@endphp
@foreach($js->option as $index => $option)
<select name="{{$option}}" id="{{$option}}">
@php
$values = $js->values[$index];
$values = explode('|',$values);
$prices = $js->price[$index];
$prices = explode('|',$prices);
@endphp
<option disabled selected>{{$option}}</option>
@foreach($values as $indx => $value)
<option value="{{$prices[$indx]}}">{{$value}} {{$prices[$indx]}}$</option>
@endforeach
</select>
@endforeach
通常,您必须发送产品对象才能查看,然后在此处使用对象的属性。 然后,您必须在options的值中添加product的id。 检测用户试图购买的产品是什么。
为此创建Halper方法。
$jsonString = '{
"option":["Size","Color"],
"values":["L|M|S","Red|Green|Black"],
"price":["9000|8000|6000","9000|8000|6000"]
}';
print_r(createItemAttributes($jsonString, $valueSpliter = '|'));
function createItemAttributes($jsonString, $valueSpliter = '|'){
$itemAttributes = json_decode($jsonString);
$options = [];
foreach($itemAttributes->option as $key => $value){
$options[$value] = explode('|',$itemAttributes->values[$key]);
}
$html = [];
foreach($options as $option => $values ){
$selectStart = '<select name="'.$option.'">';
$selectEnd = '</select>';
$valueString = '';
foreach($values as $value){
$valueString .= '<option value="'.$value.'">'.$value.'</option>';
}
$html[$option] = $selectStart.$valueString.$selectEnd;
}
return $html;
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.