nina: Teile einer URL mit auswahl im select-menu ersetzen

hallo leute,

habe das problem, in eim pfad teile der url dynamisch ersetzen zu müssen. in einem shopsystem geht es darum, dass der kunde verschiedene attribute auswählen kann, und der so ausgewählte artikel in den warenkorb gelegt werden kann.

wenn das attribut "blau" sein soll, gilt dieser link:

http://www.url.de/cgi-bin/shop.pl?NrH00001=1&VARIANTE_selectH00001=blau

ich habe aber etwa 30 verschiedene attribute zur auswahl, und will jetzt nicht für jedes ein javascript in der art

function kaufen()
{
       if (document.myform.farbe.selectedIndex=="1")

{window.location.href="http://www.url.de/cgi-bin/shop.pl?NrH00001=1&VARIANTE_selectH00001=blau"}
}

anlegen müssen.

welchen weg gibt es, die variable am ende des strings von einem script automatisch ersetzen zu lassen?

dankbar für eure hilfe,

nina

  1. Hi,

    ich würde es so machen:
    <head>
    <script type="text/javascript">
    function concatURL() {
     var basisurl = http://www.url.de/cgi-bin/shop.pl?NrH00001=1";

    var finalurl = basisurl;
     // 1. Auswahl...
     finalurl = basisurl + "VARIANTE_selectH00001=" + document.formularname.selectname[document.formularname.selectname.selectedIndex].value;

    // 2. Auswahl
     finalurl = basisurl + "VARIANTE_selectH00002=" + document.formularname.selectname2[document.formularname.selectname2.selectedIndex].value;

    ...
     self.location.href = finalurl;
     return false;
    }
    </script>
    ...
    </head>

    <form onsubmit="return concatURL();">

    </form>

    ---------

    Allerdings macht das ganze natürlich das Formular "leicht" überflüssig. Am Besten wäre eine Lösung in der du die Selects sinnvoll benennst und dann serverseitig einfach die ganzen Wert wieder auffängst. Ich nehme ja sowieso an, dass du die URL auch jetzt benutzen willst um ein Skript damit zu füttern, also ist das zusammensetzen prinzipiell nicht nötig.

    Rouven