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
}
}
如果您的變量用於多個不同的局部腳本,也可以使用placeHolder http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.placeholder – zzarbi 2011-05-13 16:08:59
感謝克里斯,那是做的。你是否也碰巧知道我的第二個問題的解決方案? – anp 2011-05-13 16:22:04
nm,我找到了解決方案。 – anp 2011-05-14 02:48:08