发布和解析从JQuery发送到PHP的数据

时间:2012-01-08 20:21:45

标签: php javascript jquery ajax request

我正在尝试使用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对象的地方,但这似乎不起作用。我也不知道如何在PHP结束时解析这个JSON。

2 个答案:

答案 0 :(得分:6)

如果您使用的是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 :(得分:1)

您应该使用PHP json_decode来解压缩JSON数据吗?