2011-05-13 60 views
3
  • 1)我如何訪問搜索$keyword裏面的paginator部分創建搜索freindly網址?顯然,傳遞關鍵字$ this-> view-> paginator->關鍵字不起作用。訪問內部paginator部分的請求參數

  • 2)目前,搜索按鈕的名稱也作爲參數發送。例如,當搜索「a」時,url變成http://localhost/search/index/search/a/submit//page/2。任何方式來阻止這一點?

搜索表單:


<form id="search" method="get" action="/search"> 
         <input id="searchfield" onClick="this.value=''" type="text" name="search" value="Search wallpapers"/> 
         <input id="searchbutton" type="submit" value="" name="submit"/> 
        </form> 

行動中searchController:


public function indexAction() 
    {   
     $keyword=$this->_request->getParam('search');   
     $alnumFilter=new Zend_Filter_Alnum(); 
     $dataModel=new Model_data();   

     $adapter=$dataModel->fetchPaginatorAdapter("title LIKE '%".$keyword."%'", ''); 
     $paginator=new Zend_Paginator($adapter); 
     $paginator->setItemCountPerPage(18); 
     $page=$this->_request->getParam('page', 1); 
     $paginator->setCurrentPageNumber($page); 

     $this->view->paginator=$paginator; 
     $this->view->keyword=$keyword; 

    } 

index.phtml(圖)文件:


partialLoop( '壁紙/表row.phtml',$這個 - >分頁程序);>
<div id="page-links"> 

     <?= $this->paginationControl($this->paginator,'Sliding','partials/search-pagination-control.phtml');?>  

    </div> 

搜索分頁程序-control.phtml文件:


if ($this->pageCount){ 
    $params=Zend_Controller_Front::getInstance()->getRequest()->getParams(); 


    if(isset($this->previous)){ 
    ?> 
     <a href="<?php echo $this->url(array_merge($params,array('page'=>$this->previous)));?>">Previous</a> 
    <?php 
    } 
    else{ 
     ?> Previous <?php 
    } 

    foreach($this->pagesInRange as $page){ 
     if($page !=$this->current){ 
      ?> 
     <a href="<?echo $this->url(array_merge($params,array('page'=>$page)));?>"><?=$page;?></a> 
     <? 
     } 
     else{ 
      echo $page; 
     } 
    } 

    if(isset($this->next)){ 
    ?> 
     <a href="<?php echo $this->url(array_merge($params,array('page'=>$this->next)));?>">Next</a> 
    <?php 
    } 
    else{ 
     ?> Next <?php 
    } 
} 

回答

9

的paginationControl視圖助手接受一個第四參數,第在是一個參數數組,所以你的情況,你可以做這樣的事情:

<div id="page-links"> 

    <?= $this->paginationControl($this->paginator,'Sliding','partials/search-pagination-control.phtml', array('keyword' => $this->keyword));?>  

</div> 

然後你訪問你的分頁使用$這 - >關鍵字裏面。

+1

如果您的變量用於多個不同的局部腳本,也可以使用placeHolder http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.placeholder – zzarbi 2011-05-13 16:08:59

+0

感謝克里斯,那是做的。你是否也碰巧知道我的第二個問題的解決方案? – anp 2011-05-13 16:22:04

+0

nm,我找到了解決方案。 – anp 2011-05-14 02:48:08