krijg pagination niet werkend door verandering url

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rob Cnossen

Rob Cnossen

24/01/2014 10:43:03
Quote Anchor link
Hallo,
ik heb een simpele pagination script in mijn foto albums. Het werkt goed wanneer ik de album open en van de pagina links gebruik maakt. De url kan er dan zo uitzien;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
http://www.robcnossen.nl/view_album.php?album_id=8&page=2
. Geen problemen daar, maar wanneer ik op een foto klik komt er in de url ook de fotonaam erbij en verdwijnt alles wat met pagination te maken heeft, de url kan er dan zo uitzien;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
http://www.robcnossen.nl/view_album.php?album_id=8&image_id=uploads/8/PICT0181.JPG
.

Mijn code is;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<div id="sidebarleft">
<?php
    if (empty($images)) {
    echo 'Er zijn geen foto\'s in dit album';
    }
else {
    foreach ($albums as $album) {
    foreach ($images as $image) {
        ?>
<div id="fotoos"><?php
            if ($image["album"] === $album["id"])
    echo'<a href="view_album.php?album_id=', $album["id"],'&image_id=uploads/', $image["album"], '/', $image["img_name"],'"><img src="uploads/thumbs/', $image["album"], '/', $image["img_name"],'" title="" /></a><div id="kruisje"><a href="delete_image.php?image_id=', $image["id"],'">_|</div></a>';    
                    ?>
</div><?php                    
    }          
    }
    }

?>

<div id="pagination">
<?php
    if($lastPage !=1){
?>
        
<div class="volgende">
<?php
if($page != $lastPage){
    $next = $page + 1;
     echo '<a href="'. $_SERVER['REQUEST_URI'].'&page='.$next.'">Volgende</a>';
    
}

?>

</div>
<div class="vorige">
<?php
if($page != 1){
    $prev = $page - 1;
     echo '<a href="'. $_SERVER['REQUEST_URI'].'&page='.$prev.'">Vorige</a>';
}
}

?>

</div>

Ik heb onder andere geprobeerd om met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if(isset($image['image_id']));
$all_images = 'image_id=uploads/' . $image['album'] . '/'. $image['img_name'];    
?>

Het ontbrekende stuk erin te passen maar dat is denk ik te simpel gedacht.

Hoe kan ik de pagination werkend krijgen met veranderende url's?
Gewijzigd op 24/01/2014 10:45:23 door Rob Cnossen
 
PHP hulp

PHP hulp

08/12/2021 10:28:07
 
Ivo P

Ivo P

24/01/2014 11:03:02
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
 echo '<a href="view_album.php?album_id='. $album["id"].'&page='.
filter_input(INPUT_GET, 'page'. FILTER_VALIDATE_NUMBER_INT) .
'image_id=uploads/'. $image["album"]. '/'. $image["img_name"].
'"><img src="uploads/thumbs/'. $image["album"]. '/'.
 $image["img_name"].'" title="" /></a><div id="kruisje"><a href="delete_image.php?image_id='. $image["id"].'">_|</div></a>';    
                    ?>
Gewijzigd op 24/01/2014 11:04:56 door Ivo P
 
Rob Cnossen

Rob Cnossen

24/01/2014 11:49:22
Quote Anchor link
Dank Ivo, Dit ziet er een stuk beter uit. Waar ik nu tegenaan loop is dat een andere variabele niet meer herkend wordt. Om het uit te leggen is moeilijker dan het te laten zien, dit is een fotoalbum, http://www.robcnossen.nl/view_album.php?album_id=8.
Wanneer er op een foto geklikt wordt komt deze foutmelding in beeld, 'Notice: Undefined variable: image in /data/home/cnos01/domains/robcnossen.nl/public_html/view_album.php on line 319'. Dat is in dit stuk;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if(isset($image['album'], $image['img_name']));    
        $foto = 'uploads/' . $image['album'] . '/' . $images[0]['img_name'];//dit is lijn 319
        
$standaardwaarde=isset($_GET['image_id']) ? $_GET['image_id'] :$foto;

    echo'<img src="' ,htmlentities($standaardwaarde), '" title="" />'
?>

Ik dacht dat er misschien de filter_input in verwerkt moest worden maar ik krijg deze foutmelding; Fatal error: Can't use function return value in write context in /

Wat moet er hier gebeuren om de foto wel te kunnen laten zien?
 
Ivo P

Ivo P

24/01/2014 12:07:32
Quote Anchor link
ik mis in mijn code een &

mijn regel 4:

'image

moet zijn

'&image
 
Rob Cnossen

Rob Cnossen

24/01/2014 12:32:34
Quote Anchor link
Ah, het kan zo simpel zijn.
Ivo, heel hartelijk dank voor jou hulp.


Toevoeging op 25/01/2014 00:02:29:

Er zijn nog een paar zaken waarvan ik dacht, dat komt wel goed, maar die ik toch niet goed krijg. Ik krijg namelijk een paar foutmeldingen;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Notice: Use of undefined constant FILTER_VALIDATE_NUMBER_INT - assumed 'FILTER_VALIDATE_NUMBER_INT' in
en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: filter_input() expects parameter 3 to be long, string given in
. Ik denk dat de paginanummer hierdoor ook niet in de url verschijnt.

Er missen dan ergens haakjes, maar ik zie niet waar, of het betekend iets anders.
de code is;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
if(isset($_GET['page'])){
    $page = preg_replace("#[^0-9]#","",$_GET['page']);
}
else{
    $page = 1;
}

$limit = 3;
$lastPage = ceil($count/$limit);

if($page<1){
    $page = 1;
}
elseif($page>$lastPage){
    $page = $lastPage;
}


$offset = ($page-1)*$limit;
$images = array();
    
    $query = $db->prepare("SELECT `image_id`, `image_name`, `album_id`, `timestamp`, `ext` FROM `images` WHERE `album_id`=? ORDER BY `timestamp` DESC LIMIT ?,?");
    
    $query->bindValue(1, $album_id);
    $query->bindParam(2, $offset, PDO::PARAM_INT);
    $query->bindParam(3, $limit, PDO::PARAM_INT);
        
    try{
    $query->execute();
    
    while ($images_row = $query->fetch(PDO::FETCH_ASSOC)) {        
        $images[] = array(
        'id' => $images_row['image_id'],
        'img_name' => $images_row['image_name'],
        'album' => $images_row['album_id'],
        'timestamp' => $images_row['timestamp'],
        'ext' => $images_row['ext']
        );
    }

    //return $images;
}catch(PDOException $e){
die($e->getMessage());
}
}

?>

</div>
<div id="sidebarleft">
<?php
    if (empty($images)) {
    echo 'Er zijn geen foto\'s in dit album';
    }
else {
    foreach ($albums as $album) {
    foreach ($images as $image) {
        ?>
<div id="fotoos"><?php
            if ($image["album"] === $album["id"])
     echo '<a href="view_album.php?album_id='. $album["id"].'&page='.
filter_input(INPUT_GET, 'page', FILTER_VALIDATE_NUMBER_INT) .
'&image_id=uploads/'. $image["album"]. '/'. $image["img_name"].
'"><img src="uploads/thumbs/'. $image["album"]. '/'.
 $image["img_name"].'" title="" /></a><div id="kruisje"><a href="delete_image.php?image_id='. $image["id"].'">_|</div></a>';    
                    ?>
</div><?php                    
    }          
    }
    }

?>

<div id="pagination">
<?php
    if($lastPage !=1){
?>
        
<div class="volgende">
<?php
if($page != $lastPage){
    $next = $page + 1;
     echo '<a href="'. $_SERVER['REQUEST_URI'].'&page='.$next.'">Volgende</a>';
    
}

?>

</div>
<div class="vorige">
<?php
if($page != 1){
    $prev = $page - 1;
     echo '<a href="'. $_SERVER['REQUEST_URI'].'&page='.$prev.'">Vorige</a>';
}
}

?>

</div>

Hoe krijg ik deze foutmeldingen weg?
Gewijzigd op 25/01/2014 00:03:08 door Rob Cnossen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.