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

时间:2013-12-02 11:20:52

标签: ajax jquery cakephp

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

<script>
$(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

2 个答案:

答案 0 :(得分:4)

$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");
    }
});

答案 1 :(得分:3)

如果您的方法是 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;