Avatar billede xeox Nybegynder
02. december 2004 - 22:19 Der er 7 kommentarer og
1 løsning

Hvorfor udskriver den ikke "næste side"?

Hej jeg har følgende side:

<Script Language="JavaScript">
PositionX = 100;
PositionY = 100;
defaultWidth  = 99;
defaultHeight = 86;
var AutoClose = true;
if (parseInt(navigator.appVersion.charAt(0))>=4){
var isNN=(navigator.appName=="Netscape")?1:0;
var isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}
var optNN='scrollbars=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY;
var optIE='scrollbars=no,width=150,height=100,left='+PositionX+',top='+PositionY;
function popImage(imageURL,imageTitle){
if (isNN){imgWin=window.open('about:blank','',optNN);}
if (isIE){imgWin=window.open('about:blank','',optIE);}
with (imgWin.document){
writeln('<html><head><title>Loading...</title><style>body{margin:0px;}</style>');writeln('<sc'+'ript>');
writeln('var isNN,isIE;');writeln('if (parseInt(navigator.appVersion.charAt(0))>=4){');
writeln('isNN=(navigator.appName=="Netscape")?1:0;');writeln('isIE=(navigator.appName.indexOf("Microsoft")!=-1)?1:0;}');
writeln('function reSizeToImage(){');writeln('if (isIE){');writeln('window.resizeTo(100,100);');
writeln('width=100-(document.body.clientWidth-document.images[0].width);');
writeln('height=100-(document.body.clientHeight-document.images[0].height);');
writeln('window.resizeTo(width,height);}');writeln('if (isNN){');     
writeln('window.innerWidth=document.images["George"].width;');writeln('window.innerHeight=document.images["George"].height;}}');
writeln('function doTitle(){document.title="'+imageTitle+'";}');writeln('</sc'+'ript>');
if (!AutoClose) writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()">')
else writeln('</head><body bgcolor=000000 scroll="no" onload="reSizeToImage();doTitle();self.focus()" onblur="self.close()">');
writeln('<img name="George" src='+imageURL+' style="display:block"></body></html>');
close();       
}}
</script>
<?
$dir = "galleri/";
// Det antal billeder der skal vises ad gangen
$antal = 9;
// Henter startnummeret.
$num = ($_GET['num']) ? (int) $_GET['num']-1 : 0;
function GetFileName($file) {
$part = explode(".", $file);
$file = "";
for($i=0;$i<count($part);$i++) {
  $file = $file . $part[$i];
}

return $file;
}

if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != ".." && $file != "Thumbs.db" && $file != "thumbs" && $file != "") {
            $files[] = $file;

        }
    }
    closedir($handle);
}
$td = 0;
sort($files);
echo "<center>";
// Tæller hvor mange filer der er
$antal_filer = sizeof($files);
// Sætter det næste og forrige nummer
$nextnum = $num+$antal+1;
$prevnum = $num-$antal;
// Tester om der skal laves en forrige eller næste link
if ($num >= $antal) echo "<a href='galleri.php?num=$prevnum'>Forrige $antal</a>&nbsp;&nbsp;&nbsp;";
if ($antal_filer > $nextnum) echo "<a href='galleri.php?num=$nextnum'>Næste $antal</a>";
echo "</center>\n<table cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" align=\"center\"> ";
  for($i=$num;$i<$num+$antal;$i++){
        $td++;
        if($td == 1) {echo "<tr>\n"; }
        // Tester om der er flere billeder at lave
        if ($i<sizeof($files)){
        ?><style type="text/css">
<!--
body,td,th {
    font-family: Arial;
    font-size: 10px;
    color: #000000;
    font-weight: bold;
}
body {
    background-color: #FFFFFF;
}
a {
    font-size: 10px;
    color: #000000;
    font-weight: bold;
}
a:link {
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #000000;
}
a:hover {
    text-decoration: none;
    color: #000000;
}
a:active {
    text-decoration: none;
    color: #000000;
}
-->
</style>
<td align="center" width="25%">
                   
      <table cellpadding="0" cellspacing="5" align="left">
        <tr>
                       
         
      <td align="center" style="border: 1px solid #ffffff;"><a href="java script:popImage('<? echo $dir.$files[$i]; ?>','<? echo $i; ?>')">
        <img src="<? echo $dir.$files[$i]; ?>" border="0" width="119" height="103">
        </a> </td>
        </tr>
  </table>
</td>
        <?
        }
        if($td == 3) {echo "</tr>\n"; $td = 0;}
}
?>

hvorfor udskriver den ikke "næste $antal" og "forrige $antal" selvom at der er eks. 10 billeder i mappen "galleri"  .. og den står til at vise kun 9 billeder pr. side?
Avatar billede daniboy Nybegynder
02. december 2004 - 22:32 #1
Debug...
udskriv $num og $antal_filer
Hvis de ikke giver det du forventer skal du nok kigge lidt tilbage i koden
Avatar billede xeox Nybegynder
02. december 2004 - 22:47 #2
den printer det fint..:

num: 0
Antal filer: 10
Antal: 9
I: 9

<?php
print "num: $num";
print "Antal filer: $antal_filer";
print "Antal: $antal";
print "I: $i";
?>


kan ikke se hvorfor den ikke vil.. har simpelthen kigget mig blind i det!
Avatar billede daniboy Nybegynder
02. december 2004 - 22:58 #3
if ($num >= $antal)
//Bør intet udskrive da 0 >= 9 = false

//$nextnum = $num+$antal+1 --> 0+9+1 = 10

if ($antal_filer > $nextnum)
// Bør intet udskrive :) 10 > 10 = false

Du bør nok lige gennemtænke det en gang til
Avatar billede xeox Nybegynder
02. december 2004 - 23:12 #4
ak ak ak .. var kommet til at sætte -o og +1 for meget nogle steder ;D.. men det virker nu.. tak for det hehe !
Avatar billede daniboy Nybegynder
02. december 2004 - 23:21 #5
Fjong bare behold points
Avatar billede xeox Nybegynder
02. december 2004 - 23:30 #6
jamen i hjalp da til med at vise hvor min fejl var ;o)
Avatar billede daniboy Nybegynder
02. december 2004 - 23:32 #7
:S... ;)
Avatar billede xeox Nybegynder
19. april 2005 - 10:12 #8
-lukket-
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester