如何检索Cakephp中Ajax发送的数据?

我一直坚持这个问题一整天。 我想要做的是使用Ajax从视图向控制器发送2个值。 这是我在hot_products视图中的代码:

  $(function(){ $('#btnSubmit').click(function() { var from = $('#from').val(); var to = $('#to').val(); alert(from+" "+to); $.ajax({ url: "/orders/hot_products", type: 'POST', data: {"start_time": from, "end_time": to, success: function(data){ alert("success"); } } }); }); }); 

和我的hot_products控制器:

 public function hot_products() { if( $this->request->is('ajax') ) { $this->autoRender = false; //code to get data and process it here } } 

我不知道如何获得2个值start_time和end_time。 请帮我。 提前致谢。 PS:即时通讯使用cakephp 2.3

$this->request->data为您提供控制器中的发布数据。

 public function hottest_products() { if( $this->request->is('ajax') ) { $this->autoRender = false; } if ($this->request->isPost()) { // get values here echo $this->request->data['start_time']; echo $this->request->data['end_time']; } } 

更新你的ajax错误,

 $.ajax({ url: "/orders/hot_products", type: 'POST', data: {"start_time": from, "end_time": to }, success: function(data){ alert("success"); } }); 

如果你的方法是POST

  if($this->request->is('ajax'){ $this->request->data['start_time']; $this->layout = 'ajax'; } 

要么

 public function somefunction(){ $this->request->data['start_time']; $this->autoRender = false; 

如果方法是GET

  if($this->request->is('ajax'){ $this->request->query('start_time'); $this->layout = 'ajax'; } 

要么

 public function somefunction(){ $this->request->query('start_time'); $this->autoRender = false;