【问题标题】:POST data from knockout.js to CakePHP controller将数据从 knockout.js 发布到 CakePHP 控制器
【发布时间】:2013-05-12 02:43:00
【问题描述】:

我正在将来自 knockout.js 页面的数据发布到 cakephp 中的控制器,它说数据已成功发布,但是,我的控制器似乎没有响应并且我没有收到警报。 .甚至没有空响应。我什至检查了 chrome 中的网络选项卡,它显示正在发布的正确数据

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

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 
}

【问题讨论】:

  • JSON_order的样本值是多少?
  • @vher2 我已更新以包含该内容

标签: php jquery json cakephp knockout.js


【解决方案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"}]}'

【讨论】:

  • 我进行了更改,现在它已分配给“订单”,如您所示。它仍然显示为成功的帖子,但我没有收到警报,甚至没有。
  • 可能问题出在您的控制器上。在submit_order函数的第一行回显一些字符串,然后退出看看会发生什么。
  • 当我将其更改为 GET 并直接转到 URL 时,它会显示回显的单词。我也没有碰这个控制器的路由。
猜你喜欢
  • 2021-11-09
  • 1970-01-01
  • 2015-08-02
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 2018-04-22
相关资源
最近更新 更多