为了账号安全,请及时绑定邮箱和手机立即绑定

如何从laravel中的json数组中获取数据

如何从laravel中的json数组中获取数据

PHP
慕码人8056858 2021-06-08 13:09:42
我在从 Laravel 中的 json 数组获取数据时遇到问题。我有 json 数组,我想在两个不同的选择选项下显示数据,但我不知道如何在 json_decode() 之后获取数据,而不是在 php 中使用 jquery ..!!{"option":["Size","Color"],"values":["L|M|S","Red|Green|Black"],"price":["9000|8000|6000","9000|8000|6000"]}我想在这些选择选项下显示它,例如 Laravel Blade 中的颜色选择选项和尺寸下的尺寸选择选项......!!
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

您必须首先解码 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

通常,您必须发送一个产品对象来查看,然后在此处使用该对象的属性。然后您必须在选项的值中添加产品的 id。检测用户尝试购买的产品是什么。


查看完整回答
反对 回复 2021-06-25
?
慕少森

TA贡献2019条经验 获得超9个赞

为此创建 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;

}


?>


查看完整回答
反对 回复 2021-06-25
  • 2 回答
  • 0 关注
  • 360 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信