Цикл по объекту в массиве внутри объекта на Ajax Success - PullRequest
0 голосов
/ 26 июня 2018

Я отправляю данные на мой контроллер Laravel и пытаюсь получить доступ к возвращенному ответу Json.

Я отправляю данные со следующими данными:

$.ajax({
  headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
  type: "post",
  data: {ingredients: step_ingredients, description: step_description},
  dataType:'json',
  url: "{{ route('steps.store', ['id' => $recipe->id]) }}",

  success: function (data) {
    console.log(data);

    //alert(data.desc);
    $("#ajaxOutput").html('<code>Description output: '+data.desc+'</code>');
    // $.each(data, function (key, value) {                     
    //   alert(data.ing.ingredient_id);
    // });           
  },
  error: function (xhr, ajaxOptions, thrownError) {
    console.warn(xhr.responseText);
    alert(xhr.status);
    alert(thrownError);
  }
});

И (пока) контроллер выполняет следующее:

public function store(Request $request)
{

  $data = [
    'success' => true,
    'message'=> 'Your AJAX processed correctly',
    'ing' => json_decode($request->ingredients),
    'desc' => $request->description
  ] ;

  return response()->json($data);
}

Console Log of data response

Я могу получить доступ к описанию и т. Д., Используя data.desc, но у меня возникают проблемы с циклическим просмотром массива data.ing и доступом к соответствующим значениям, например, имя ингредиента 1 или ингредиент 2 количество .

1 Ответ

0 голосов
/ 26 июня 2018

попробовать для Laravel foreach($ing as $data) { echo "$data->ingredient_name"; //$data is object }

для JavaScript

$.each(data.ing, function (key, value) { console.log(value.ingredient_name); })

...