2012-02-16 21 views
0

我的控制器行动控制器动作中的Zend不同的方式调用框架

public function abcsajaxAction(){ 
    $start_date = $this->_getParam('start_date'); 
    $end_date = $this->_getParam('end_date'); 


    $myquery; //myquery 
    //zend pagination 
    } 

我在这里把这个动作我的意思是我的js

$("#show_history_call_logs").click(function(){ 
var pass = true; 
var start_date = $("#start_date").val(); 
var end_date  = $("#end_date").val(); 
var page_to_get = $('input[name=hidden]').val(); 

//some validation 
if(pass == true){ 
var href= "http://localhost/abc/xyz/index.php/login/"+page_to_get+"/"; 
var data ='start_date=' + start_date + '&end_date=' + end_date + '&option_call_log=' + option_call_log + '&option_call_log_asc_desc=' + option_call_log_asc_desc; 
$.ajax({ type: "GET", 
      url: href, 
      data: data, 
      success: function(response){ 
      $('#paged-data-container').html(response); 
      } 
      }); 
      return false; 
     } 

现在在这个事件中,我的意思是 $("#show_history_call_logs").click()

其工作很好每次 但正如我所说在这个动作中也有分页所以现在当我在任何分页的点击,使他们去这个行动,但他们没有在这种情况下,让这些

$start_date = $this->_getParam('start_date'); 
$end_date = $this->_getParam('end_date'); 

它给我这个错误

Message: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound 

这在另一边,他们我越来越意味着通过事件。 所以我应该怎么去让它在两个场景中都能正常工作。

回答

0

我不明白你想达到什么目的。你的sql查询中有开始和结束日期。所以,你应该

  • 把params
  • 重写查询,以便日期不会,如果不考虑目前

例如以这种方式

$start_date = $this->_getParam('start_date', null);

...

$sql = $this->select()->from(x);

if(!empty($startDate)) {

$sql->where('start_date < ?', $startDate)

}

+0

我想,以前是,但现在应用了相同的查询不同的页面意味着它首先呈现页面现在是第2页,等等。我将这样做 – 2012-02-16 09:58:21

+0

什么doe null意味着在这里$ start_date = $ this - > _ getParam('start_date',null); – 2012-02-16 09:59:00

+0

如果你的查询中有参数,他们必须填写,这是不明确的? :)第二个参数是默认值,如果没有参数存在,则设置它。 如果你想分页,你应该阅读paginator文档 - http://framework.zend.com/manual/en/zend.paginator.html – 2012-02-16 15:00:59

0

未经测试,但尝试可能是它的工作原理

if(empty($start_date) && empty($end_date)){ 
$select = $registry['select']; 
    } 
else{ 
     $select; //your new query 
} 

if(!empty($start_date) && !empty($end_date)){ 
    Zend_Registry::set('select',$select); 
    } 
+0

注意:未定义的索引:select – 2012-02-16 10:52:11

+0

使用zend_session比 – 2012-02-17 08:12:57

相关问题