Variablen-Übergabe aus Bedingung heraus
Jan
- php
Hallo Leute!
Nun, ich hab schon vor einigen Tagen gepostet, dass ich ein Katalog-Scipt habe, welches andere Webmaster auf der Homepage einbinden können.
Damit die Seite farblich halbwegs zum Rest passt, möchte ich ihnen die Möglichkeit bieten, per Parameter Farben zuweisen zu können.
Das klappt schon mal vorzüglich, nur habe ich noch eine Blätterfunktion drin, und hier weiß ich nicht wie vorgehen.
Es ist eben so, dass der Webmaster keine Farben-Parameter einbauen muss, er kann auch nur 2 oder 3 von 7 möglichen anwenden.
Jetzt hatte ich mir folgende Lösung ausgedacht:
Also die Standard-Einbindung wäre script.php?kat=sonstiges zB
Wenn das aufgerufen wird, wird sofort auf script.php?kat=sonstiges&seite=5 (der Seitenwert kommt aus einer Datenbank, 5 ist nur als Beispiel gedacht).
Nur können nun zwischen den Parametern kat und seite bis zu 7 weitere stehen.
Folgendes Script wollte ich probieren:
if {!isset($seite) {
$test = $QUERY_STRING;
echo "<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=script.php?";
echo $test;
echo "&seite=5">";
} else {
echo "<a href=script.php?";
echo $test;
echo "&seite=";
echo $seite - 1;
echo ">zurück</a> - ";
echo "<a href=script.php?";
echo $test;
echo "&seite=";
eco $seite + 1;
echo ">vor</a>";
}
Das funktioniert nun leider nicht, da die Variable $test aus dem "if-Teil" nicht übernommen wird. Ist auch nachvollziehbar.
Nur, weiß jemand, wie ich das lösen kann? Der letzte Schritt wäre eben, über zig If-Bedingungen jeden einzelnen, möglichen Parameter nach Existenz zu prüfen, das dürfte fix funktionieren, nur wäre es doch sehr mühsam.
Gruß, Jan
Hallo
Folgendes Script wollte ich probieren:
if {!isset($seite) {
$test = $QUERY_STRING;
echo "<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=script.php?";
echo $test;
echo "&seite=5">";
} else {
echo "<a href=script.php?";
echo $test;
echo "&seite=";
echo $seite - 1;
echo ">zurück</a> - ";
echo "<a href=script.php?";
echo $test;
echo "&seite=";
eco $seite + 1;
echo ">vor</a>";
}
Das funktioniert nun leider nicht, da die Variable $test aus dem "if-Teil" nicht übernommen wird. Ist auch nachvollziehbar.
Nur, weiß jemand, wie ich das lösen kann?
hast du es schon einmal so herum versucht ?
$test = $QUERY_STRING;
if {!isset($seite) {
...
gruss
bjoern
Hi
hast du es schon einmal so herum versucht ?
$test = $QUERY_STRING;
if {!isset($seite) {
...
Geht nicht, da er ja dann jedes mal den Query_String neu abspeichert und so wächst er beim blättern (es kommen lauter &seite=.. nacheinander).
Ich möchte aber, dass er den Query_String nur einmal kurz vor dem Refresh abspeichert.
Gruß, Jan
Huhu Jan
eine Lösung wäre es eine eigene Funktion zu definieren, welche
anhand eines Übergebenen Array den Paramter-String zusammenbaut.
also etwas wie z.B.
function ParameterString( $arr ,$useampersand = false)
{
$stack = array();
foreach( $arr as $k => $v){
if (!trim($v)) continue;
$stack[] = $k.'='.urlencode($v);
}
$glue = $useampersand ? '&':'&';
return join ( $glue , $stack);
}
dann steckst Du Deine Paramter in ein Array
also z.B.
$MyGetValue = array();
$MyGetValue['seite'] = 12;
$MyGetValue['nr'] = 2;
etc..
$GetParList = ParameterString( $MyGetValue );
so far ...
lulu