[Opgelost]Code volgende weigert
KoenVR - 20/08/2006 15:57 (laatste wijziging 21/08/2006 16:21)
Lid
de code zou feitelijk in een directory,
van foto naar foto moeten gaan,
maar enkel de 'knop' Vorige werkt.
de knop volgende weigert,
zien jullie in waarom
(als ik vorige er niet bij zet werkt volgende wel)
(in checkurl.php wordt gewoon de map gecontroleerd en in array gestoken:
foto[0] = hoofdmap
foto[1] = subdirectory
foto[2]= fotonaam zelf.
<?php
include('checkurl.php');
?>
<html>
<head>
<title>Fotoalbum</title>
</head>
<body>
<h1>
<?php
echo $foto[1];
?> </H1>
<?php
$map = $foto[0];
$sub = $foto[1];
$pic = $foto[2];
function volgende()
{
global $pic;
global $map;
global $sub;
global $tonen;
$tonen .= $map;
$tonen .= "/";
$tonen .= $sub;
$tonen .= "/" ;
$pic=$pic+1;
$tonen .= $pic;
return $tonen;
}
function vorige()
{
global $pic;
global $map;
global $sub;
global $tonen;
$tonen .= $map;
$tonen .= "/";
$tonen .= $sub;
$tonen .= "/" ;
$pic=$pic-1;
$tonen .= $pic;
return $tonen;
}
echo '<center>';
echo '<table width=100%>
<tr>
<td width=50%>
<a href="?direct='.vorige().'">vorige</a>
</td>
<td width=50% align="right">
<a href="?direct='.volgende().'">volgende</a>
</td>
</tr>
</table>';
?>
<img src="<?= $_GET[direct] ?>" width="50%">
</body>
</html>
<?php
include ( 'checkurl.php' ) ;
?>
<html>
<head>
<title>Fotoalbum</title>
</head>
<body>
<h1>
<?php
?> </H1>
<?php
$map = $foto [ 0 ] ;
$sub = $foto [ 1 ] ;
$pic = $foto [ 2 ] ;
function volgende( )
{
$tonen .= $map ;
$tonen .= "/" ;
$tonen .= $sub ;
$tonen .= "/" ;
$pic = $pic + 1 ;
$tonen .= $pic ;
return $tonen ;
}
function vorige( )
{
$tonen .= $map ;
$tonen .= "/" ;
$tonen .= $sub ;
$tonen .= "/" ;
$pic = $pic - 1 ;
$tonen .= $pic ;
return $tonen ;
}
<tr>
<td width=50%>
<a href="?direct=' . vorige( ) . '">vorige</a>
</td>
<td width=50% align="right">
<a href="?direct=' . volgende( ) . '">volgende</a>
</td>
</tr>
</table>' ;
?>
<img src="<?= $_GET [ direct] ?> " width="50%">
</body>
</html>
17 antwoorden
Gesponsorde links
Stijn - 20/08/2006 17:24
PHP expert
doe eens die global $tonen; weg in beide functies... PHP.net: global
ikkedikke - 20/08/2006 18:43
PHP expert
of op regel 26 en 41 dat eerste puntje voor de = weghalen
KoenVR - 20/08/2006 20:11 (laatste wijziging 21/08/2006 12:25)
Lid
Nu hebbek dit,
de vorige werkt, maar volgende doet niks (dus hij geeft geen fout meer, dezelfde foto blijft staan, maar hij verandert dus ook niet)
edit: sorry voor de kick, maar is er echt niemand die kan/wil helpen
<?php
include('checkurl.php');
?>
<html>
<head>
<title>Fotoalbum</title>
</head>
<body>
<h1>
<?php
echo $foto[1];
?> </H1>
<?php
$map = $foto[0];
$sub = $foto[1];
$pic = $foto[2];
function volgende()
{
global $pic;
global $map;
global $sub;
$tonen = $map;
$tonen .= "/";
$tonen .= $sub;
$tonen .= "/" ;
$pic=$pic+1;
$tonen .= $pic;
return $tonen;
}
function vorige()
{
global $pic;
global $map;
global $sub;
$tonen = $map;
$tonen .= "/";
$tonen .= $sub;
$tonen .= "/" ;
$pic=$pic-1;
$tonen .= $pic;
return $tonen;
}
echo '<center>';
echo '<table width=100%>
<tr>
<td width=50%>
<a href="?direct='.vorige().'">vorige</a>
</td>
<td width=50% align="right">
<a href="?direct='.volgende().'">volgende</a>
</td>
</tr>
</table>';
?>
<img src="<?= $_GET[direct] ?>" width="50%">
</body>
</html>
<?php
include ( 'checkurl.php' ) ;
?>
<html>
<head>
<title>Fotoalbum</title>
</head>
<body>
<h1>
<?php
?> </H1>
<?php
$map = $foto [ 0 ] ;
$sub = $foto [ 1 ] ;
$pic = $foto [ 2 ] ;
function volgende( )
{
$tonen = $map ;
$tonen .= "/" ;
$tonen .= $sub ;
$tonen .= "/" ;
$pic = $pic + 1 ;
$tonen .= $pic ;
return $tonen ;
}
function vorige( )
{
$tonen = $map ;
$tonen .= "/" ;
$tonen .= $sub ;
$tonen .= "/" ;
$pic = $pic - 1 ;
$tonen .= $pic ;
return $tonen ;
}
<tr>
<td width=50%>
<a href="?direct=' . vorige( ) . '">vorige</a>
</td>
<td width=50% align="right">
<a href="?direct=' . volgende( ) . '">volgende</a>
</td>
</tr>
</table>' ;
?>
<img src="<?= $_GET [ direct] ?> " width="50%">
</body>
</html>
cloudstrife - 21/08/2006 12:31
PHP beginner
op regel 59 misschien nog een ; plaatsen
KoenVR - 21/08/2006 12:35
Lid
; geplaatst
maar de volgende werkt nog steeds niet,
(vorige blijft werken )
Abbas - 21/08/2006 13:01
Crew .NET
op regel 59 staat:
<img src="<?= $_GET[direct] ?>" width="50%">
<img src="<?= $_GET [ direct] ?> " width="50%">
Moet dit niet zijn:
<img src="<?php $_GET['direct'] ?>" width="50">
<img src="<?php $_GET [ 'direct' ] ?> " width="50">
laat maar weten of het werkt of niet eh
Thomas - 21/08/2006 13:45
Moderator
Nope titjes, je drukt niets af met jouw tweede codefragment...
KoenVR - 21/08/2006 13:46
Lid
de afbeelding wordt goed weergegeven hoor,
maar de functie vorige wordt ofwel niet goed 'aangesproke' of werkt niet goed,
terwijl alles volledig hetzelfde is als bij vorige (behalve dan +1)
en dat vorige wel werkt...
het rare is.
als ik de code van vorige met // zet (dus als commentaar)
dat volgende dan wel weer werkt
KoenVR - 21/08/2006 14:45
Lid
is toch in een functie?
functie wordt toch pas uitgevoerd als ze aangeroepen wordt?
Thomas - 21/08/2006 15:13
Moderator
Stel het huidige plaatje is 4.
Vorige plaatje wordt 3, $pic (globaal) wordt tevens 3.
Volgende plaatje wordt 3+1 = 4, maar dit is dus niet het volgende plaatje (5).
Snappie?
KoenVR - 21/08/2006 15:18
Lid
ik volg niet direct,
stel huidig plaatje is 4.
je drukt op vorige, dan wordt huidig plaatje 3,
stel huidig plaatje is 4,
je drukt op volgende, dan wordt huidig plaatje 5
stel je het plaatje is 4,
je drukt op vorige, dan wordt eerst plaatje 3 weergegeven,
je drukt dan weer op volgende dan wordt 4 weergegeven (wat zou kloppen)
aangezien ze beide toch in een afzonderlijke functie staan?
tkan zijn dat ik weer logica tekort kom natuurlijk, en dan mag je me altijd tips geven hoe ik de code dan moet zetten
Thomas - 21/08/2006 16:12
Moderator
Kijk eens naar de HTML-source die deze code genereert, dan begrijp je wel wat ik bedoel denk ik.
Het is wellicht beter om op grond van de huidge waarde in $_GET het vorige / volgende plaatje te bepalen.
KoenVR - 21/08/2006 16:16 (laatste wijziging 21/08/2006 16:19)
Lid
ow my god...
de oplossing is gewoon + 2 doen....
@ FangorN,
ik snap het nog niet volledig, hoe het komt eigelijk,
maar de oplossing is er,
het werkt door +2 te doen...
NightFox - 21/08/2006 17:15
Nieuw lid
Anders kom je op regel 15 op 0 uit en dan werkt het niet meer.
KoenVR - 21/08/2006 17:19
Lid
regel 15 gaat nooit nul zijn...
regel 15,
$foto[0], gaat (als je echo doet weergeven)
Foto.
Thomas - 22/08/2006 13:42
Moderator
I have failed again...
Gesponsorde links
Dit onderwerp is gesloten .