Отправка и анализ данных, отправленных из JQuery в PHP - PullRequest
1 голос
/ 09 января 2012

Я пытаюсь использовать JQuery для передачи структуры данных, похожей на приведенную ниже, в скрипт php:

{
  "shopping":
    [
      {
         "type": "online",
         "mood": 9 
      },
      {
         "type": "mood",
         "mood": 4
      }
    ],
   "researching":
     [
      {
         "type": "online",
         "mood": 3 
      },
      {
         "type": "library",
         "mood": 1
      }
     ]
}

Эти данные в JSON изменяются в зависимости от форм и ползунков, которыми пользователь манипулирует, а затем JSON отправляется асинхронно с кнопкой отправки.У меня возникли проблемы с выяснением, как использовать JQuery для отправки этого запроса и как его проанализировать в PHP.Я хотел бы отправить эти данные, используя метод POST.Прямо сейчас я использую:

$.post('server/dataInput.php',submissions, function(data){
    console.log(data);
});     

Где представления - это объект JSON, однако это не похоже на работу.Я также не знаю, как я мог бы затем проанализировать этот JSON в конце PHP.

Ответы [ 2 ]

6 голосов
/ 09 января 2012

Если вы используете jquery 1.4.0+, json_decode не требуется.Ваши данные будут получены на PHP в виде массива.

Пример:

JS фрагмент:

var testData = {
    "shopping": [
      {
         "type": "online",
         "mood": 9 
      },
      {
         "type": "mood",
         "mood": 4
      }
    ],
    "researching": [
      {
         "type": "online",
         "mood": 3 
      },
      {
         "type": "library",
         "mood": 1
      }
    ]
};

function sendTest() {
    $.post('test.php', testData, function(data) { console.log(data); });
}

ВызовsendTest ...

test.php:

<?php

var_dump($_POST);

И ваша функция успеха отобразит то, что test.php выведено:

array(2)
{
  ["shopping"]=> array(2)
  {
    [0]=> array(2)
    {
      ["type"]=> string(6) "online"
      ["mood"]=> string(1) "9"
    }
    [1]=> array(2)
    {
      ["type"]=> string(4) "mood"
      ["mood"]=> string(1) "4"
    }
  }

  ["researching"]=> array(2)
  {
    [0]=> array(2)
    {
      ["type"]=> string(6) "online"
      ["mood"]=> string(1) "3"
    }
    [1]=> array(2)
    {
      ["type"]=> string(7) "library"
      ["mood"]=> string(1) "1"
    }
  }
}

Итак, все работает "из коробки"!:)

1 голос
/ 09 января 2012

Вы должны использовать PHP json_decode для распаковки данных JSON?

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