0

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

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

反対側では、イベントを通じて意味します。両方のシーンで機能するようにするにはどうすればよいですか。

4

2 に答える 2

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);
  }
于 2012-02-16T10:48:33.953 に答える
0

あなたが何を達成したいのか正確にはわかりません。SQLクエリに開始日と終了日があります。だからあなたはすべきです

  • パラメータを設定する
  • 存在しない場合は日付が考慮されないようにクエリを書き直してください

例えばこんな風に

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

...

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

if(!empty($startDate)) {

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

}

于 2012-02-16T08:57:21.383 に答える