joMakaroni: mehrere values im <OPTION> ?

hallo,

1. Ich habe eine Administration mit DropDown liste programmiert, die dynamisch mit einer MySQL db gefüllt wird.

2. Dies soll mir ermöglichen auf all meinen seiten meiner website intern auf eine andere seite meiner website zu verweisen.

3. Mit den values im <OPTION> tag will ich dynamische links in meiner seite erstellen.

4. Ich würde noch gerne eine variable ID separat mitschicken um beim laden der seite den aktuellen link anzuzeigen.

5.momentan löse ich dies über string funktionen mit php, würde das aber gern anders lösen, wenn das möglich ist.

MEINE FRAGE:
Gibt es eine möglichkeit bei einem submit mehrere variablen oder values pro <OPTION>
mitzuschicken.

BEISPIEL:
<select name="menu1">
<option value="?cat_id=2&id=62">news</option>
<option value="?cat_id=4&id=12">contact</option>
<option value="?cat_id=2&id=55" selected>gallery</option>
<option value="?cat_id=1&id=102">newsletter</option>
</select>

gruß
joM

  1. Hello,

    1. Ich würde noch gerne eine variable ID separat mitschicken um beim laden der seite den aktuellen link anzuzeigen.

    Du hast den  falschen Ansatz.

    Wenn Der Client die Möglichkeit hat Realwerte zu verschicken, dann ist immer die Gefahr der Injection gegeben. Der User könnte sein Formular fälschen, und Dir sinstwas schicken.

    Damit das nicht passiert, indiziert man die möglichen Werte und hinterlegt auf dem Server, welcher Index zu welchem Wert gehört. Außerdem kann man mittels Session und Formular-ID auch sicherstellen, dass der User nur zwischen den Indices wählen kann, die man ihm auch zur Auswahl angeboten hat.

    Und wenn man das dann sowieso in der Session speichert (an die der User nicht herankommt), dann kann man da auch beliebig viele weitere Attribute ankoppeln.

    Konntest Du mir folgen?

    Die schlechtere alternative ist, als Wert einen Seperated String zu benutzen

    <option value="2|62|99|page">news</option>

    Da kann man dann den Value auf dem Server leicht mit explode('|',$_POST['menu1'])
      auseinandernehmen.

    Man kann auch so arbeiten wie Du und mit parse_str() http://de2.php.net/manual/de/function.parse-str.php arbeiten. Der String muss aber vor der Versendung an den Client mit urlencode() behandelt werden.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. hallo,

      ich denke das mir das mit den values="5|5|name" weiterhelfen wird.
      Das dürfte doch alles kein problem sein mit injection.
      Die variablen die ich sende sind vorgegeben.
      Es soll 1.der link sein und 2.eine link referenz linkID mit welcher ich die Aktuelle verlinke.

      danach mache ich ein UPDATE der datenbank. es ist keine Form mail.

      danke
      joM