@paulvales

Как распарсирить такой json в CI?

Приветствую! Работаю в codeigniter, формируется такой json :
[{"kind":24,"val":"2","day":1},{"kind":24,"val":"2","day":2},{"kind":24,"val":"2","day":3}]

отправляю ajaxом
var data_array = new Array();
    $("input[type='checkbox']").each(function(){
       var item = {};
        for(var i in $(this).data()){
            item[i] = $(this).data(i);
            item['val'] = $(this).val();
        }
        data_array.push(item);
    });
var data = JSON.stringify(data_array);
$.ajax({
    type:"POST",
    url:"/welcome/savejournal",
    contentType : "application/json",
    data: data,
    success:function(data){ console.log(data); },
      error:function(data){console.warn(data);}
    })
, в контроллере принимаю var_dump($this->input->post()) показывает пустой массив.
проверял, данные уходят. Но в конроллере их никак не видно. Где я ошибся?
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 2
glebovgin
@glebovgin
Full Stack Web Developer
День добрый.

1. Пробуйте принять просто $_POST - если он не пустой, то проблема внури CI'шного класса Input
2. На всякий случай, убедитесь, что вы в htaccess не добавляете последний слэш к урлам, если добавляете, то $_POST будет приходить пустой, надо отправлять на url:"/welcome/savejournal/"
3. Для теста отправьте не POST а GET и посмотрите - есть данные или нет.
4. Точно убедитесь - не отмирает ли контероллер с 500 ошибкой. Мало ли.
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
Ручками json_decode($this->input->raw_input_stream, true). А лучше, обернуть это в middleware.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы