Avatar billede xenophobia Nybegynder
25. juli 2003 - 22:52 Der er 4 kommentarer og
1 løsning

Sideopdeling - nemt

Jeg vil gerne have opdelt det output jeg får fra scriptet op i sider. Se http://www.eksperten.dk/spm/379912
Mvh
Xenophobia
Avatar billede detox Nybegynder
26. juli 2003 - 00:00 #1
Du kan fx bruge sessions. Saml resultatet i et array og smid det i en sessionvariabel. Så kan du evt. styre outputtet ved hjælp af noget array_shift(), array_unshift(), array_pop(), array_push() eller en page_id i url'en.
Avatar billede sukos Juniormester
26. juli 2003 - 03:28 #2
Det var sgu ikke nemt!
Er osse en af de ting jeg tidligere har prøvet på, men som ikke rigtig er lykkedes for mig, og så brugte jeg tal i adresselinien som brugeren jo kunne "manipulere" med, (irriterende), så jeg har ikke før kikket noget videre på det.
Men detox's, "Du kan fx bruge sessions" ga' mig lige lidt blod på tanden, og ja det funker, men kunne måske nok laves lidt anderledes/nemmere?
Anyway, vil prøve at lave noget andet, uden sessions, men ikke før jeg har sovetlidt.

<?php

$sti = dirname($_SERVER["DOCUMENT_ROOT"] . $_SERVER["PHP_SELF"]) ."/nybilleder/";
$listfiler = array();
$path = opendir($sti);

while (false !== ($files = readdir($path))) {
if($files == "." || $files == ".." || is_dir($sti . $files)) {
continue;
}
$listfiles[] =  $files;
}

closedir($path);
session_start();

$maxvist = 4;//antal viste ad gangen
$nytrow= 2;//Hvornår skal der være linieskift i visning af filer? sørg for at det går op $maxvist, for "look'ets" skyld

$antalfiler = count($listfiles);


//bruger sessions så der kun står frem eller tilbage i adresselinien.
//Nok ikke videre brugervenligt, medmindre man laver "sublinks" 4-8, 8-12 12-16 o.s.v.

    if(!isset($_SESSION["vis"])) {
$_SESSION["vis"] = 0;
    }

if(!isset($_GET["vis"])) {
$back = "&nbsp;";
    if($antalfiler > $maxvist) { //Kikker lige efter om der er flere filer end $maxvist ad gangen
$viste = $maxvist;
$frem = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=frem\">N&aelig;ste</a>";
    }else{
$viste = $antalfiler;
$frem = "&nbsp;";
    }
        }else{ // GET["vis"] er sat

    if($_GET["vis"] == "frem") {
        $back = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=tilbage\">Tilbage</a>";

        if(($_SESSION["vis"]+$maxvist) < $antalfiler) {
        $_SESSION["vis"] = ($_SESSION["vis"]+$maxvist);
            if(($_SESSION["vis"]+$maxvist) < $antalfiler) {
            $viste = ($_SESSION["vis"]+$maxvist);
            $frem = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=frem\">N&aelig;ste</a>";
            }else{
            $viste = $antalfiler;
            $frem = "&nbsp;";
            }
        }else{
        $antal_tilbage = ($antalfiler-$_SESSION["vis"]);
        $_SESSION["vis"] = ($antalfiler-$antal_tilbage);
        $viste = $antalfiler;
        $frem = "&nbsp;";
        }
    }

    if($_GET["vis"] == "tilbage") {
        $frem = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=frem\">N&aelig;ste</a>";

        if(($_SESSION["vis"]-$maxvist) >= $maxvist) {
        $_SESSION["vis"] = ($_SESSION["vis"]-$maxvist);
            $viste = ($_SESSION["vis"]+$maxvist);
            $back = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=tilbage\">Tilbage</a>";
        }else{
        $_SESSION["vis"] = 0;
        $viste = $maxvist;
        $back= "&nbsp;";
        }
    }
}
?>
<html><head></head>
<body>
<center>
<table width="480" border="1"><tr>
    <td width="10"><?php echo $back; ?></td>
    <td width="460" align="center"><?php echo ($_SESSION["vis"]+1) ." - ". $viste ." af ialt ". $antalfiler; ?></td>
    <td width="10"><?php echo $frem; ?></td>
</tr><tr>
    <td align="center" colspan="3"><?php
for($i = $_SESSION["vis"]; $i < $viste; $i++) {
    if($i%$nytrow == 0 && $i !=0 && $i != $_SESSION["vis"]) {
echo "<br>\n";
    }
echo $listfiles[$i] ." ";
}
?></td>
</tr></table></center>

</body></html>
Avatar billede detox Nybegynder
26. juli 2003 - 04:23 #3
Ehm, ja det er jo noget mere omfattende end jeg havde troet. Jeg havde forestillet mig at smide selve array'et ($listfiles[]) i en session og så hoppe videre til en ny side, hvor man kunne bladre rundt i dem.
På den måde kunne man jo slippe for at skulle liste filerne flere gange. Men jeg vil give dig ret i det ikke hører til kategorien nemt.
Avatar billede xenophobia Nybegynder
26. juli 2003 - 11:40 #4
Sukos >> Vidunderligt flot! Du har reddet mig. Smid et svar og få dine velfortjente points.
Avatar billede sukos Juniormester
26. juli 2003 - 13:49 #5
Ok du, har heller ikke kikket på at bruge $_GET i stedet.
Må blive en anden dag.
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