volgende pagina(s)

Status
Niet open voor verdere reacties.

kritinet

Gebruiker
Lid geworden
25 nov 2007
Berichten
118
ik heb een soort katalogus voor vele verschillende accommodaties en op de pagina http://www.estero-travel.com/nl/Bestemmingen/index.php worden ze allemaal per 5 op de pagina weergegeven. Je kan ze laten sorteren op bv. prijs( http://www.estero-travel.com/nl/Bestemmingen/index.php?sort=price_from ) . Als je dan naar de volgende pagina gaat, blijft het ook nog steeds gesorteerd ( http://www.estero-travel.com/nl/Bes...um_accos=1&totalRows_accos=19&sort=price_from ) , maar die daarop volgende pagina niet meer ( http://www.estero-travel.com/nl/Bestemmingen/index.php?pageNum_accos=2&totalRows_accos=19 ).
WAAROM ???

Het script ziet er als volgt uit.
PHP:
$maxRows_accos = 5;
$pageNum_accos = 0;
if (isset($_GET['pageNum_accos'])) {
  $pageNum_accos = $_GET['pageNum_accos'];
}
$startRow_accos = $pageNum_accos * $maxRows_accos;
 
mysql_select_db($database_db, $db);
$sort_by = "";
    if(isset($_GET['sort'])){
        $sort = $_GET['sort'];
        if($sort == "price_from" or $sort == "name" or $sort == "village" or $sort == "streek" or $sort == "country"){
            $sort_by = " ORDER BY `".$sort."`";
        }
    }
    $query_accos = "SELECT * FROM accos".$sort_by;
$query_limit_accos = sprintf("%s LIMIT %d, %d", $query_accos, $startRow_accos, $maxRows_accos);
$accos = mysql_query($query_limit_accos, $db) or die(mysql_error());
$row_accos = mysql_fetch_assoc($accos);
 
 
if (isset($_GET['totalRows_accos'])) {
  $totalRows_accos = $_GET['totalRows_accos'];
} else {
  $all_accos = mysql_query($query_accos);
  $totalRows_accos = mysql_num_rows($all_accos);
}
$totalPages_accos = ceil($totalRows_accos/$maxRows_accos)-1;
 
$queryString_accos = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_accos") == false && 
        stristr($param, "totalRows_accos") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_accos = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_accos = sprintf("&totalRows_accos=%d%s", $totalRows_accos, $queryString_accos);


$sort_by = "";
    if(isset($_GET['sort'])){
        $sort = $_GET['sort'];
        if($sort == "price_from" or $sort == "name" or $sort == "village" or $sort == "streek" or $sort == "country"){
            $sort_by = " ORDER BY `".$sort."`";
        }
    }
PHP:
<?php do { ?>
    <?php echo $row_accos['image']; ?><h4><?php echo $row_accos['name']; ?>  <?php echo $row_accos['type']; ?></h4> in <?php echo $row_accos['village']; ?> (<?php echo $row_accos['streek']; ?> - <?php echo $row_accos['country']; ?>)<br />
    <br />

      
     <?php echo $row_accos['description']; ?>...
    <p class="info"><?php echo $row_accos['url']; ?></p>
  <p class="info">
  <a href="http://www.estero-travel.com/legendeNL.php" onclick="return popup(this, 'notes')">
<img  src="http://www.estero-travel.com/images/graphics/i.jpg" alt="informatie" width="12" height="12" border="0" style=" margin-bottom:20px" /></a><?php echo $row_accos['icon']; ?></p>
      <p class="price"  > vanaf <strong><?php echo $row_accos['price_from']; ?> &euro;<br />
<br />
<img src="http://www.estero-travel.com/images/graphics/---.gif" alt="||  Estero || Travel, Events &amp; more !" width="80%" height="8"  /><br />
<br />
      </strong></p>
    
    <?php } while ($row_accos = mysql_fetch_assoc($accos)); ?>
  
  <p align="center"><a href="<?php printf("%s?pageNum_accos=%d%s", $currentPage, max(0, $pageNum_accos - 1), $queryString_accos); ?>">&lt;&lt;&lt;&lt;</a> Accommodaties <?php echo ($startRow_accos + 1) ?>-<?php echo min($startRow_accos + $maxRows_accos, $totalRows_accos) ?> van totaal<?php echo $totalRows_accos ?> <a href="<?php printf("%s?pageNum_accos=%d%s", $currentPage, min($totalPages_accos, $pageNum_accos + 1), $queryString_accos); ?>">&gt;&gt;&gt;&gt;</a></p>

Behalve dat heb ik ook nog geen oplossing voor mijn probleem http://www.helpmij.nl/forum/showthread.php?t=445223
 
Je geeft het zelf al aan bij het geven van de links:
nog steeds gesorteerd (
index.php?pageNum_accos=1&totalRows_accos=19&sort=price_from
) , maar die daarop volgende pagina niet meer (
index.php?pageNum_accos=2&totalRows_accos=19
).
WAAROM ???
Je stuurt de sort optie niet mee naar de volgende pagina. De code om die link te maken zit ergens in regels 30 tot 44.

Weet je zeker dat regel 32 werkt? De querystring wordt ge-explode op basis van &amp; (de html tegenhanger) ipv & dus dat zou niet moeten werken. Ik denk dus dat je dit moet veranderen: van
Code:
$params = explode("&amp;", $_SERVER['QUERY_STRING']);
naar
Code:
$params = explode("&", $_SERVER['QUERY_STRING']);
Dan zouden de volgende regels in dat codeblok ook moeten werken. Op regel 41 doe je net het tegenovergestelde: je gebruikt & ipv &amp;
Code:
$queryString_accos = "&" . htmlentities(implode("&amp;", $newParams));
zou moeten zijn
Code:
$queryString_accos = "&amp;" . htmlentities(implode("&amp;", $newParams));
Binnen php kun je & gebruiken. Zodra je data naar de browser stuurt moet het &amp; worden om de html code geldig te maken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan