从knockout.js到CakePHP的控制器POST数据(POST data from knoc

2019-10-18 04:01发布

我张贴从knockout.js页面数据在CakePHP的控制器和它说,该数据已成功发布,不过,我的控制似乎并没有被回应,我没有得到一个警报回来......甚至null响应。 我甚至在检查镀铬网络选项卡,它显示正在发送的正确数据

这里的是从我的淘汰赛视图模型文件发布数据

var JSON_order = JSON.stringify({"orderInfo":[{"itemNumber":"1","quantity":"1","price":1.00,"productName":"test"}]});
$.post("/orders/submit_order", JSON_order,
function(data){
    alert(data.check); //alert doesn't appear
}, "json");

这里是我的控制器

function submit_order(){
    $this->layout = false;
    $this->autoRender = false;
    if ($this->request->is('post')) {
        $order = $this->request->data;
        $order = json_decode($order, true);
        $finalize_order = new submit;
        $finalize_order->display_submitted_order_success($order);
    }
}

下面是display_submitted_order_success代码(我也试过这个介绍CakePHP之外的PHP文件,但它也不能工作)

function display_submitted_order_success($order = null){
    $this->layout = false;
    $this->autoRender = false;
      //I'm just trying to display the order as-is so that I know it's even being posted to begin with
    echo json_encode(array("check" => "success","order_num" => $order)); //the values passed the price check, display the result 
}

Answer 1:

你要的值赋给JSON_order到VAR:

var JSON_order = JSON.stringify({"orderInfo":[{"itemNumber":"1","quantity":"1","price":1.00,"productName":"test"}]});
$.post("/orders/submit_order", {order:JSON_order},
function(data){
    alert(data.check); //alert doesn't appear
}, "json");

所以,你的控制器会收到这样的:

$data['order'] = '{"orderInfo":[{"itemNumber":"1","quantity":"1","price":1,"productName":"test"}]}'


文章来源: POST data from knockout.js to CakePHP controller