Jan: Variablen-Übergabe aus Bedingung heraus

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

  1. 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

    1. 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

  2. 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