Hallo,
Ich übergebe mit der Query noch andere Parameter.
Wie trenne ich die ?
Das erledigt, wenn alles richtig gemaicht wurde, das CGI-Modul.
Also ich habe im mom :
use CGI;
$params = new CGI;
$Index = $params->param('Index');
if ($Index eq ''){$Index = 0;}
$wochen = $params->param('wochen');
if ($wochen eq "1") {&viewentr1;}
fast richtig (ich steig nicht runter):
use strict;
use CGI;
my $params = new CGI; # $query wäre für micht klarer, aber bitte schön
my $Index = $params->param('Index');
if ($Index eq ''){$Index = 0;}
my $wochen = $params->param('wochen');
if ($wochen eq "1") {&viewentr1;} #der Stringvergleich ist auch nicht gerade schön
(Obwohl die Variablen nicht unbedingt benötigt werden würden. s.u.)
Ist jetzt der HTML Aufruf :
http://www.pbtoys.de/cgi-bin/newitemsneu.cgi?wochen=1,Index=70
z.B. in Ordnung ?
Grundsätzlich ja, aber es kommt nicht das raus was Du wahrscheinlich haben willst.
Hier steht nämlicht, daß der der CGI-Parameter 'wochen' auf '1,Index=70' gesetzt ist.
http://www.pbtoys.de/cgi-bin/newitemsneu.cgi?wochen=1&Index=70
ist, was Du willst. Warum das so ist, kannst Du beispielsweise unter http://selfhtml.teamone.de/cgiperl/intro/formularverarbeitung.htm#datenstrom nachlesen. [1]
und das zweite Problem ist das der jetzt wunderschön die thumbs teilt, aber auf der zweiten seite nicht mehr die Beschränkung von 70 Thumbs einhält.
Also wenn ich so aufrufe =
http://www.pbtoys.de/cgi-bin/newitemsneu.cgi?Index=30
Dann macht er mit 110 Thumbs
@lines = splice(@lines, $Index, $Index+70);
$Index = $indexBack;
foreach $line (@lines)
{
@fields=split(/\s*|\s*/,$line);
$thumb=$fields[5];
print <<HTMLF;
<blablabla>
HTMLF
$indexBack=$Index-70;
if ($indexBack < 1) { $indexBack=0 }
print "<a href="http://www.pbtoys.de/cgi-bin/newitemsneu.cgi?Index=$indexBack">70 Products back / zurück</a>";
}
??? Verstehe nicht woran das jetzt liegt ...
Hmm, nicht wirklich, aber Alternative (Du ersparst Dir das Splice)
use strict;
use CGI;
my $query = new CGI;
my $images_per_page = 70;
das hier
&viewentr1 if $query->param('wochen') == 1;
anstelle von:
#my $wochen = $params->param('wochen');
#if ($wochen eq "1") {&viewentr1;}
my @lines = &readImageIndex(); # iergendeine Funktion, die eben Deine Index-Datei ausliest.
my $linecount;
my $maxcount = $query->param('Index')+ $line_per_pages;
$maxcount = $#lines if $maxcount>$#lines;
my $nextIndex = $maxcount+1;
my $prevIndex = $query->param('Index') - $line_per_pages;
$prevIndex = 0 if $prevIndex <0;
for($linecount = $query->param('Index');$linecount <$maxcount;$linecount++)
{
chomp $lines[$linecount]; # den Zeilenumbruch weg, falls vorhanden;
# hier die behandlung der Zeile $lines[$linecount]
}
Da fehlt jetzt noch einiges an behandlung der vor- und zurück-Links, aber das machst Du schon.
Ach ja, das erste Element eines Arrays hat den Index 0.
Grüße
Klaus
[1] Premiere, ich habe heute meinen ersten Link zu SelfHTML 8.0 gesetzt;-)