Ein Formularfeld mit 2 dynamischen Werten übergeben

Chiroptera

Grünschnabel
Hallo zusammen!

Ich habe ein Formular, das die Werte aus einer DB erhält. Sowohl der Wert für foo als auch der Wert für bar sind dynamisch und müssen über option value übergeben werden.
Code:
<form name="jump_product" method="get" action="<?php echo $_SERVER['PHP_SELF'] ?>">
  <input name="action" type="hidden" id="action" value="product">
  <select name="foo">
    <option selected="selected">Choose product...&nbsp;&nbsp;</option>
    <option value="g&bar=10">G 10</option>
    <option value="h&bar=5">H 5</option>
    <option value="i&bar=110">I 110</option>
  </select>
<input type="submit" name="Submit" value="Go">
</form>
"Method=Get "muß leider sein, weil die weitere Verarbeitung darauf aufbaut.

Wie kann ich es nun erreichen, daß
Code:
test.php?action=product&foo=g&bar=10&Submit=Go
und nicht
Code:
test.php?action=product&foo=g%26bar%3D10&Submit=Go
gesendet werden? Ich weiß, daß das Problem bei den zwei Werten in einem Feld liegt, aber wie löst man so etwas normalerweise?

Vielen Dank im Voraus,
Christoph
 
Musst Du denn den Parameter "bar" mitsenden? Die Optionsliste wird doch durch Dein Script generiert, also musst Du doch intern wissen, welcher bar-Wert zu welchen foo-Wert gehört.

snuu
 
Ja, muß ich. Das Beispiel habe ich ein bißchen unglücklich gewählt, sorry. Es gibt auch Werte wie "G 20", "G 40", "G 80", "H 20" usw. :(
 
Dadurch ändert sich aber nichts an meiner Grundaussage: Das Script weiss doch, welche Werte zu dem Produkt gehören, also ist es doch nicht erforderlich die Werte extra mitzusenden.
 
Vielleicht reden wir auch aneinander vorbei oder Du verstehst nicht, was ich meine. Im nächsten Schritt ist Dir bekannt, welches Produkt ausgewählt wurde. Und da das Script im vorhergehenden schritt die Produktliste generiert hat, muss es auch wissen, welche zusätzlichen Parameter zu dem Produkt gehören. Also ist es doch auch möglich im nächsten Schritt die zugehörigen Parameter zum Produkt zu ermitteln.

snuu
 
Ich habe es nun so gelöst, daß ich die Werte in der Form "G_10" übergebe und dann vor der Weiterverarbeitung mit explode() wieder trenne. Vielleicht nicht die sauberste Variante, aber sie funktioniert :)

Danke für die Denkanstösse ;) und schönen Nachmittag,
Christoph
 
Zurück