20. juli 2003 - 18:49Der er
122 kommentarer og 2 løsninger
For mange tal i tagwall
Davs, jeg har et problem med min kodning. Se på http://www.clangangsta.1go.dk/?display=tagwall . Der er en række tal foroven, hver gang du trykker på et tal fremviser den de næste 10 tags. Det kender man jo til :). Men som du også kan se er jeg jo lidt ved at løbe tør for plads. Hvordan skal koden til at den sætter et limit på se ud? Altså hvis limit er 20 så ser den sådan ud: (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 ...) med den reaktion at når man trykker på "..." så kommer (21,22 osv) Koden kan ses på: www.clangangsta.1go.dk/tagwall.phps
hmm .. kan du sende mysql tabellen + hvad der ellers skulle være nødvendigt for at jeg kan få det til at køre på min maskine så jeg kan kigge på det ? det er svært bare at sige .. prøv det og det, og ikke selv kunne afprøve om det holder først .. ?
ikke for at tage ideerne/pointsne fra dig troxa -- men hvad med at man viser << 1 2 3 4 5 6 7 ... 17 18 19 20 >> hvis offset er mellem 1 og 100 --- men fra 100 og opefter så viser man de 100 bagud og de 100 foran --
eksempel offset er 170 så vises 70 80 90 100 110 120 - osv op til 270
Derudover kunne der væren en knap (hop til start) og en (hop til slut) således at man havde en "hurtigknap" tilbage til den første side,...
omformuleret - hvis offset er 170, så vises 7,8,9,...,25,26,27 (hvilket reelt er 21 "links", men lad nu det ligge - det er ideen i det, der er vigtig :-)
// "s" kommer ind og er et direkte offset $median = ($s <=100) ? 100 : $s; $startPos = $s-100; for($i=0; $i<20; ++$i) { $nr = $startPos+($i*10); $nrTxt = $nr/10; if($nr==$s) { // udskriv nuværende side - unden noget link print("[".$nrTxt."]"); } else { // udskriv link til anden side print("<a href='".$_SERVER['PHP_SELF']."?display=tagwall&s=".$nr'>".$nrTxt."</a> "); } }
Kunne ikke lige finde ud af hvordan din kode skulle indsættes BearHugx, så jeg forsøgte mig med Troxa's. Sådan er den indsat: www.clangangsta.1go.dk/tagwall.phps
// "s" kommer ind og er et direkte offset $startPos = ($s <= 100) ? 0 : $s-100; for($i=0; $i<20; ++$i) { $nr = $startPos+($i*10); $nrTxt = ($nr/10)+1; if($nrTxt<10) $nrTxt = "0".$nrTxt; //print(" nr = $nr - txt = $nrTxt <br>");
if($nr==$s) { // udskriv nuværende side - unden noget link print("[".$nrTxt."] -"); } else { // udskriv link til anden side print("<a href='".$_SERVER['PHP_SELF']."?s=".$nr."'>".$nrTxt."</a>"); if( $i<19 ) print(" - "); } } ?> </body> </html>
bemærk dog, at denne kode ikke tager højde for, hvormange tags der rent faktisk er--- Det kunne være en udvidelsesmulighed - så man ikke til sidst ender oppe på side 333 - (dvs de 3320'de tags)
En anden nemt udvidelse må være indsættelse af [til start] og [til slut] links (til start er nem - det er bare ?s=0 :-)
eller bare print("<a href='".$_SERVER['PHP_SELF']."?display=tagwall'> START </a>"); da scriptet er lavet sådan at den starter ved 0, hvis der ikke er opgivet nogen s værdi :-)
"bemærk dog, at denne kode ikke tager højde for, hvormange tags der rent faktisk er--- Det kunne være en udvidelsesmulighed - så man ikke til sidst ender oppe på side 333 - (dvs de 3320'de tags)" <-- kan du lige forklare lidt om det her til sidst ? :o)
egenligt har jeg andet og lave (har en opgave til i morgen) - så hvis det tager mig mere end til kl. 3 at hjælpe dig, så må du vente til i morgen (mandag) aften...
// "s" kommer ind og er et direkte offset $startPos = ($s <= 100) ? 0 : $s-100; if(($s > 100) && ($s+100 > $total)) { $startPos = ($total-$totalRest)-190; }
egenligt har du jo lavet "den lette løsning", en af de svære ting ved min kode var at finde ud af, hvor man skulle starte henne, hvis man kun måtte have 20 links - et krav, som du definerede i dit start-indlæg :-/
<<(start) (slut)>> <-- start kan jeg jo snildt lave, men slut er jo en del sværere eftersom at jeg så skal have countet alle tags og finde det sidste, nummerere det og lave link til det :)
Hvorfor bruger du ikke bare min kode -- den virker -den viser kun 20 links af gangen - den har ikke forrige/næste - men den har start/slut (som virker..)
Den eneste forskel i forhold til versioner, vi har haft oppe tidligere (f.eks. 2:40 tiden) er to linier kode -- er du sikker på at du har sat funktionen rigtigt ind i din PHP fil ?
ok ... men så vil jeg holde her - og komme tilbage til mit arbejde :-)
du må endelige lige lave et indlæg her om hvordan det ser ud, når serveren er oppe og stå, og du får det efterprøvet .... - For det virker tip-top her hos mig
Men hør, du sagde at du havde lidt travlt, så jeg føler mig lidt dum at sidde og stjæle din tid da dette jo ikke er andet end fritid. Vi kan fortsætte i morgen engang når du har har tid? :)
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.