【问题标题】:How to fetch data from json array in laravel如何从 laravel 中的 json 数组中获取数据
【发布时间】:2019-10-06 01:11:45
【问题描述】:

我在从 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 中大小选择选项下的大小..!!

Like This

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您必须先解码 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。检测用户尝试购买的产品是什么。

    【讨论】:

    • 真棒帮助@Salar
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 2017-11-05
      • 2020-08-18
      • 1970-01-01
      • 2014-08-12
      • 1970-01-01
      • 2016-11-22
      相关资源
      最近更新 更多