вопрос массива в json с использованием AJAX в laravel - PullRequest
1 голос
/ 19 марта 2019

У меня проблема с преобразованием массива в JSON в laravel с использованием ajax-запроса.Вот мой код

Код AJAX:

  data = {
    clients: clients,
   _token:$('input[name="_token"]').val()
  }

$.ajax({
        url: '{{URL::to('/url')}}'+'/' + trainer_id,
        type: 'POST',
        dataType: 'json',
        data: data,
        success: function (response) {
        }, error: function (response) {
        }
       });


клиентов - это массив, и у него есть идентификаторы.Это выглядит так: клиенты: Массив [3] 0: 859 1: 883 2: 885

КОД КОНТРОЛЛЕРА LARAVLE:

public function myCode($id, Request $request) {
        dd(json_encode($request->clients));
}

Ответ кода: "[" 859 ","883 "," 885 "]".

Но я хочу этого: ["859", "883", "885"].

Кто-нибудь знает решение?

Заранее спасибо!

Ответы [ 6 ]

0 голосов
/ 19 марта 2019

вот описание использовать JSON_FORCE_OBJECT

  json_encode($request->clients, JSON_FORCE_OBJECT)
0 голосов
/ 19 марта 2019
public function myCode($id, Request $request) {
    return response()->json($request->clients);
}
0 голосов
/ 19 марта 2019

в успешном обратном вызове JavaScript

JSON.parse("["859","883","885"]") = [859,883,885];

JSON.parse(response); // in your case
0 голосов
/ 19 марта 2019

Проблема здесь:

public function myCode($id, Request $request) {
    dd(json_encode($request->clients));  // There is no use of dd(), dd() is used for debugging purpose
}

измените его на:

public function myCode($id, Request $request) {
    return response()->json($request->clients);  // We have to return this data as json that's why we use json() here
}

Редактируйте: Для отправки дополнительных данных создайте массив и передайте $request->clients по одному из ключей и вернуть этот массив как:

return response()->json($your_array);
0 голосов
/ 19 марта 2019

json_encode() возвращает строку. Просто используйте dd($request->clients);

0 голосов
/ 19 марта 2019

измените это на

public function myCode($id, Request $request) {
      return response()->json($request->clients);
}

Вы также можете отправить дополнительные пармы

public function myCode($id, Request $request) {
      return response()->json(['data'=>$request->clients,'status'=>true]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...