我正在尝试将Knockout.js中的JSON编码数据传递给我的控制器中的一个动作,但是它没有工作并显示为null。
我在一个非蛋糕的php文件中使用了相同的脚本,它运行得很好。有没有一种特殊的方法来解码蛋糕的json数据?假设这是传递的URL。
/orders/submit_order/%7B"orderInfo":["itemNumber":"1","quantity":"1","price":"1.00","productName":"Test Product"]%7D
这是行动
//OrdersController
function submit_order($order = null){
$order = json_decode($order, true);
print_r($order);
//I also tried commenting out the json decode to simply pass the info without further processing but that just displayed "t"
}
有没有一种特殊的方法来处理Cakephp?使用标准的php文件,我会设置类似
的内容 page.php?order=....json data
然后使用
访问它$order = $_GET['order'];
答案 0 :(得分:1)
也许尝试通过POST而不是GET发送数据?可能是url中的数组表示法未正确转义。
答案 1 :(得分:0)
您是否尝试将数据作为常规查询字符串发送,然后像控制器中的任何普通字符串一样访问它?
查看jQuery.param(),它允许您将json对象转换为查询字符串。以下是该页面的示例:
var myObject = {
a: {
one: 1,
two: 2,
three: 3
},
b: [1,2,3]
};
var recursiveEncoded = $.param(myObject);
var recursiveDecoded = decodeURIComponent($.param(myObject));
alert(recursiveEncoded);
alert(recursiveDecoded);
和结果(分别为每个函数调用):
a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3
a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3