2012-02-16 19 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

相關問題