通过Ajax将jQuery对象发送到PHP

时间:2017-09-18 12:06:03

标签: javascript php jquery json ajax

非常清楚这可能是重复的,但Stackoverflow上的其他任何问题/答案都没有解决我的问题,而且我已经看过数十< /强>!

以下是我尝试做的事情: 通过Ajax将jQuery中的对象发送给PHP,如果可能的话,作为数组发送(不是强制性的,但更可取)。

我的 jQuery 代码:

  var category = {
        id: $(this).data('id'),
        name: $(this).data('name'),
        brief_description: $(this).data('briefdesc'),
        description: $(this).data('desc')
    };

    $.ajax({url: '/ajax.php',
        data: {action: 'removeCategory', category_info: JSON.stringify(category)},
        type: 'post',
        success: function (result) {
            console.log(result);
        },
    error: function () {
       console.log("Error");  
    }, dataType: "json"
});

变量类别工作正常,每个索引都有其值

现在我的 ajax.php 代码

$category = json_decode($_POST['category_info']);
//category['name'] should exist and have the value sent from ajax
echo "We did it?";

问题在于调用了错误函数。

2 个答案:

答案 0 :(得分:1)

 json_decode($_POST['category_info'], true);

将其解码为数组,否则将为对象

http://php.net/manual/en/function.json-decode.php

答案 1 :(得分:1)

你不需要字符串化。

$.ajax({
        url: '/ajax.php',
        data: {
              action: 'removeCategory', 
              category_info:category
        },
        type: 'post',

在PHP方面,你将在$ _POST [&#39; category_info&#39;]中获得它。无需解码