비슷한 질문을했지만 무용지물로 검색 했으므로 다른 사람이 도울 수 있기를 바랍니다.Zend Paginator를 사용하여 검색 결과에 페이지 매기기 적용하기
젠드 프레임 워크 (1.12)를 사용하여 만든 사이트의 검색 결과를 페이지 매김하는 데 문제가 있습니다. 항목을 검색 할 수 있으며 페이지 매김도 이루어졌지만 다음 페이지로 이동하려면 클릭하면 모든 검색 결과가 손실됩니다. 코드는 URL에? page = 2 e.t.c를 추가하지만 코드는 검색 항목을 잃습니다.
아마도 세션이나 Zend_Session을 사용하여 가능한 한 질문을 읽었지만 현재는 조금 잃어 버렸습니다! PHP에 비교적 익숙하지 않습니다. 이건 내 다른 페이지에 포함 된 검색 form.php (XHTML)
<?php
// Search Form
?>
<div id="search">
<h4 style="margin-bottom:20px;">Search</h4>
<form name="prodSearch" action="listing-search.php" method="post">
<input type="text" name="searchitems" id="searchitems" />
<input type="submit" name="search_items" id="search_items" value="Go" />
</form>
</div>
-
첫째 여기 내 검색 양식입니다. 쿼리에 $ _POST, 당신은 멀리 탐색 링크를 클릭 할 때 $ _POST를에 저장된 데이터를 잃어 버릴 만 $에 무엇 유지를 전달되기 때문에이
<?php
require_once('admin/scripts/library.php');
require_once('admin/scripts/db_definitions.php');
try {
?>
<!-- HTML Doc Type, Head removed e.t.c -->
<div id="listing-col-main">
<div id="all-cars">
<h4>Search Results</h4>
</div>
<!-- Listings -->
<?php
$query = $_POST['searchitems'];
$min_length = 3;
if (strlen($query) >= $min_length) {
$query = htmlspecialchars($query);
$query = mysql_real_escape_string($query);
$raw = searchItems($dbread, $query);
$paginator = Zend_Paginator::factory($raw);
if (isset($_GET['page'])) {
$paginator->setCurrentPageNumber($_GET['page']);
}
$paginator->setItemCountPerPage(8);
$paginator->setPageRange(3);
$count = $paginator->getTotalItemCount();
if ($count > 0) {
foreach ($paginator as $results) { // repeat all results ?>
<?php
$item_id = $results['item_id'];
$photos = getRelatedPhotos2($dbread, $item_id);
?>
<div class="product-listing">
<div class="product-listing-image">
<?php foreach ($photos as $photo) { //repeat ?>
<img src="image_upload/<?php echo $photo['filename']; ?>" width="75" alt="" />
<?php } ?>
</div>
<div class="product-listing-title">
<h4><?php echo $results['type_name']; ?> - <?php echo $results['item_make'] . ' ' . $results['item_model']; ?> </h4>
</div>
<div class="product-listing-details">
<p>YEAR: <?php echo $results['item_year']; ?> FUEL: <?php echo $results['item_fuel']; ?> TRANS: <?php echo $results['item_transmission']; ?> MILEAGE: <?php echo $results['item_mileage']; ?> </p>
</div>
<div class="product-listing-viewmore"><a href="itempage.php?item_id=<?php echo $results['item_id']; ?>">More Info</a></div>
</div>
<?php } ?>
<!-- 8 products per page -->
<div id="product-listing-pagination">
<?php
$pages = $paginator->getPages('Elastic');
if (isset($pages->previous)) {
echo '<a href="' . $_SERVER['PHP_SELF'] . '?page=' . $pages->previous . '">Prev</a>';
}
foreach ($pages->pagesInRange as $page) {
if ($page != $pages->current) {
echo " <a href='" . $_SERVER['PHP_SELF'] . "?page={$page}'>$page</a>";
} else {
echo ' ' . $page;
}
}
if (isset($pages->next)) {
echo ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $pages->next . '">Next</a>';
}
?>
</div>
<?php } else { ?>
<div id="noresults"> <?php echo "No results found for " . $query; ?> </div>
<?php }
} ?>
</div>
<div id="col-right">
<?php include("search-usedcars.php"); ?>
<!-- End of Main Search -->
<div id="latest-news">
<h3>Latest News</h3>
<?php include("latestnews.php"); ?>
</div>
</div>
<div class="clear"></div>
<div id="footer-bar"> <a href="#">Designed by</a> </div>
</div>
</body>
</html>
<?php
} catch (Exception $e) {
echo $e->getMessage();
}
?>
고마워요. 나는 그것이 단순한 무언가 일 줄 알았다. 그러나 나는 그것에 의해 눈이 멀었다. 메소드를 GET으로 변경하고 링크를 수정하면 사라집니다. –