krijg pagination niet werkend door verandering url
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;. 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;.
Mijn code is;
Code (php)
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
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>
<?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)
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
Code (php)
1
2
3
4
5
6
7
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>';
?>
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
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;
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?
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, 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)
1
2
3
4
5
6
7
8
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="" />'
?>
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?
mijn regel 4:
'image
moet zijn
'&image
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)
1
Notice: Use of undefined constant FILTER_VALIDATE_NUMBER_INT - assumed 'FILTER_VALIDATE_NUMBER_INT' in
Er missen dan ergens haakjes, maar ik zie niet waar, of het betekend iets anders.
de code is;
Code (php)
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
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>
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