Как получить данные из массива json в laravel - PullRequest
1 голос
/ 19 мая 2019

У меня проблемы с извлечением данных из массива json в laravel. У меня есть массив json, и я хочу показать данные в двух разных опциях выбора, но я не знаю, как получить после json_decode () не используя jquery только в php ..!!

{
"option":["Size","Color"],
"values":["L|M|S","Red|Green|Black"],
"price":["9000|8000|6000","9000|8000|6000"]
}

Я хочу отобразить его под этими опциями выбора, такими как выбор цвета под цветом и выбор размера под выбором в лезвии ларавеллы .. !!

Like This

Ответы [ 2 ]

3 голосов
/ 19 мая 2019

Вы должны сначала декодировать строку 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

Обычно вы должны отправить объект продукта для просмотра, а затем использовать свойства объекта здесь.Затем вы должны добавить идентификатор продукта в значение параметров.Чтобы определить, что это за продукт, который пользователь пытается купить.

0 голосов
/ 19 мая 2019

Создать метод 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;
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...