Avatar billede sukos Juniormester
01. oktober 2003 - 02:52 Der er 5 kommentarer og
2 løsninger

Er gået i stå! Hjælp til noget "sublinks" søges

Sidder og roder med noget "forrige" og "næste" side.
Og flg . virker såmænd fint nok:

<?php

function pagelink($linkid, $text) {
    if(empty($linkid)) {
    return "<a href=\"". $_SERVER["PHP_SELF"] ."\">". htmlentities($text) ."</a> &nbsp; ";
    }else{
    return "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=". $linkid ."\">". htmlentities($text) ."</a> &nbsp; ";
    }
}

function make_sub_links($antal, $antalviste) {
echo"<table><tr>\n";
echo"    <td width=\"100\" class=\"small\">". @$back ."</td>\n";
echo"    <td class=\"small\" align=\"center\">";
$sublinks = ceil($antal/$antalviste);
$max_subs = 3;
for($i = 0; $i <= $sublinks; $i++) {
    if(!isset($_GET["vis"])) {
    if($i == 0) {
    echo"<b>1</b> &nbsp; ";
    }else{
if($i == $sublinks) {
continue;
}
    echo pagelink(($i*$antalviste), $i+1);
        }
    }else{
$her = floor(($_GET["vis"]/$antalviste)+1);

    if($i == 0) {
continue;
}
        if($her == $i) {
        echo "<b>". $i ."</b> &nbsp; ";
        }else{
        echo pagelink((($i-1)*$antalviste), $i);
        }
    }
}
echo"</td>\n";
echo"    <td width=\"100\" class=\"small\" align=\"right\">". @$next ."</td>\n";
echo"</tr></table>\n";

}

make_sub_links(34, 5);
?>

pagelink() er fordi jeg bruger linket en del gange.
$back og $next er hentet fra noget tidligere, altså de laver et link til de næste 5 indlæg, f.eks. (her bruges pagelink() også)
Så er det jeg gerne vil gi' muligheden for at springe til f.eks ?vis=40, i stedet for at skulle sidde og klikke 7 gange på $next

Ovenstående virker fint nok, men hvordan begrænser jeg muligheden for at springe?
Hvis nu $sublinks f.eks. er 100, vil det jo ikke se godt ud på en side, 100 links derudaf!
Altså, hvordan laver jeg det som på f.eks. google, med links videre til næste trin af "under_sublinks"?

Håber i forstår!
Avatar billede detox Nybegynder
01. oktober 2003 - 04:31 #1
Jeg har leget lidt med din $max_subs. Jeg synes umiddelbart det fungerer nogenlunde.

<?php

function pagelink($linkid, $text) {
    if(empty($linkid)) {
    return "<a href=\"". $_SERVER["PHP_SELF"] ."\">". htmlentities($text) ."</a> &nbsp; ";
    }else{
    return "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=". $linkid ."\">". htmlentities($text) ."</a> &nbsp; ";
    }
}

function make_sub_links($antal, $antalviste) {
echo"<table><tr>\n";
echo"    <td width=\"100\" class=\"small\">". @$back ."</td>\n";
echo"    <td class=\"small\" align=\"center\">";
$sublinks = ceil($antal/$antalviste);
$max_subs = 3;
$start = isset($_GET["vis"]) ? floor($_GET["vis"]/$antalviste) : 0;
$max_vis = min($sublinks + $start + 1,$max_subs + $start + 1,$sublinks);
$start_vis = max(1,$start-$max_subs);
for($i = $start_vis; $i <= $max_vis; $i++) {
    if ($i == 0) continue;
    if($start+1 == $i) echo "<b>". $i ."</b> &nbsp; ";
    else echo pagelink((($i-1)*$antalviste), $i);
}
echo"</td>\n";
echo"    <td width=\"100\" class=\"small\" align=\"right\">". @$next ."</td>\n";
echo"</tr></table>\n";

}

make_sub_links(34, 5);
?>
Avatar billede detox Nybegynder
01. oktober 2003 - 04:44 #2
Ved nærmere eftersyn af Google, må jeg sige den der: <Gooooooooooooogle> ting er rigtig smart. Jeg har bare ikke bemærket funktionaliteten før nu. c",)
Avatar billede sukos Juniormester
01. oktober 2003 - 05:39 #3
Hmm, ja, næsten, hvis nu du skrev "alm" PHP kode, du ved
if($var == "jowda") {
echo"JAJA";
}else{
echo"NEJNEJ";
}

:O)

(bruger ikke selv forkortelserne), så ville jeg måske kunne finde ud af at få det til at virke optimalt! :O)
Der skal jo helst være et link som "springer fremad", og er man "gået fremad" skal der jo osse helst være et link som "springer tilbage" :O)))
Avatar billede sukos Juniormester
01. oktober 2003 - 06:10 #4
b.t.w. detox, du har lige fået en tak med i et upload script jeg lige har lagt ud! :O) (Du lærte mig lidt om ini_get() :O)
Avatar billede sukos Juniormester
02. oktober 2003 - 13:16 #5
Vil du ha' lidt point, detox?
Det er godt nok ikke præcis hvad jeg er ude efter, men godt på vej i den rigtige retning, så la' os sige 50 point? :O)
Avatar billede detox Nybegynder
02. oktober 2003 - 14:53 #6
Det vil være uhøfligt at afslå, så hvis du synes 50 point, siger jeg tak.
Det er lidt sværere at rette andres kode til end at lave sin egen, men jeg kan godt li' din filosofi med i høj grad at benytte sig af funktioner. c",)
Avatar billede sukos Juniormester
02. oktober 2003 - 14:59 #7
Ja, det er jo for at kunne smide det ind på sider hvor det er brugbart, og så er det iøvrigt fedt at bakse en funktion sammen som virker første gang! :O) Hvilket ikke altid er tilfældet! :O)
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