2012-02-16 34 views
0

私のコントローラのアクションコントローラのアクション

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


    $myquery; //myquery 
    //zend pagination 
    } 

私は $("#show_history_call_logs").click()

を意味し、このイベントになりました

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

私のjsを意味し、ここからこのアクションを呼び出します

毎回その作業がうまくいく しかし、私は言ったように、このアクションでページネーションもありますので、今、彼らはこのアクションに行くが、彼らはこのような場合にはこれらの

$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をレンダリングすることを意味します。そうです。これは私が行います。 –

+0

ここでdoe nullは何を意味しますか?$ start_date = $ this - > _ getParam( 'start_date'、null); –

+0

質問にパラメータがある場合は、入力する必要がありますが、これは明確ではありませんか? :) 2番目のパラメータは、パラメタが存在しない場合に設定されるデフォルト値です。 ページネーションが必要な場合は、paginator docs - http://framework.zend.com/manual/en/zend.paginator.htmlを参照してください。 –

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 –

+0

よりzend_sessionを使用 –

関連する問題