[JavaScript] Triple Combo Formular

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Triple Combo Formular

    Hallo liebe Forengemeinde,

    ich bin dank dieses Forums mit meinem Problem schon recht weit gekommen, denn ich bin auch der Suche nach einem Formular, welches ein 3-faches DropDown enthält, wo jedes vom vorherigen abhängig ist.

    Die Inhalte der DropDowns werden aus einer Datenbank gefüttert.
    Der User muss dann nacher noch ein paar persönliche Angaben machen und dann wird der ganze Inhalt per Form-Mailer verschickt.

    Den folgenden Code habe ich bis jetzt:

    PHP-Code:
    <html> 
    <body> 
    <? 

    $server = "localhost"; 

    $datenbank = "dbank"; 

    $user = "user"; 

    $pass = "passw"; 

    $sql = mysql_connect($server,$user,$pass) or die ("Keine Verbindung möglich. Prüfen Sie die Zugangsdaten oder wenden Sie sich an den Administrator."); 
    $db=mysql_select_db($datenbank,$sql) or die ("Die Datenbank existiert nicht. Prüfen Sie die Schreibweise oder wenden Sie sich an den Administrator."); 



    #$result = mysql_db_query($datenbank,"SELECT distinct stadt from linkliste where region='".$Region."' order by stadt" ); 
    #$row = mysql_fetch_array($result); 

    ?> 
    <form name="Formular" method=POST action="http://www.domain.de/cgi-bin/mailer/wolfmail.cgi">
        
    <INPUT TYPE=HIDDEN name="redirect" value="http://www.domain.de/okay.php">
    <INPUT TYPE=HIDDEN name="sender_email" value="Email">
    <INPUT TYPE=HIDDEN name="subject" value="Katalog-Anforderung">
    <INPUT TYPE=HIDDEN name="recipient" value="xx@domain.de">

    <? 
    $result = mysql_db_query($datenbank,"SELECT distinct staerke from linkliste order by staerke" ); 
    $row = mysql_fetch_array($result); 
    $sstartwert=$row["staerke"]; 
    ?> 
    <select name="st" onchange="document.forms[0].submit()"> 
    <? 
    echo '<option value="'.$row["staerke"].'" '; 
    if($HTTP_POST_VARS["st"] and $HTTP_POST_VARS["st"]==$row["staerke"]) 
    echo 'selected'; 
    echo'>'.$row["staerke"]; 
    while($row = mysql_fetch_array($result)) 

    echo '<option value="'.$row["staerke"].'" '; 
    if($HTTP_POST_VARS["st"] and $HTTP_POST_VARS["st"]==$row["staerke"]) 
    echo 'selected'; 
    echo'>'.$row["staerke"]; 

    ?> 
    </select> 


    <select name="br" onchange="document.forms[0].submit()"> 
    <option value="">----Auswahl 
    <? 
    $sb=$sstartwert; 
    if($HTTP_POST_VARS["st"]) 
    $sb=$HTTP_POST_VARS["st"]; 
    $result = mysql_db_query($datenbank,"SELECT distinct breite from linkliste where staerke='".$sb."' order by breite" ); 

    #echo '<option value="'.$row["breite"].'" '; 
    #if($HTTP_POST_VARS["br"] and $HTTP_POST_VARS["br"]==$row["breite"]) 
    #echo 'selected'; 
    #echo'>'.$row["breite"]; 
    while($row = mysql_fetch_array($result)) 

    echo '<option value="'.$row["breite"].'" '; 
    if($HTTP_POST_VARS["br"] and $HTTP_POST_VARS["br"]==$row["breite"]) 
    echo 'selected'; 
    echo'>'.$row["breite"]; 

    ?> 
    </select> 

    <select name="ug"> 
    <option value="">----Auswahl 
    <? 
    $hb=$startwert; 
    if($HTTP_POST_VARS["br"]) 
    $hb=$HTTP_POST_VARS["br"]; 

    $result = mysql_db_query($datenbank,"SELECT * from linkliste where breite='".$hb."'"); 
    while($row = mysql_fetch_array($result)) 

    echo '<option value="'.$row["hoehe"].'">'.$row["hoehe"]; 

    ?> 

    <br><br>
    &nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Abschicken">

    <br>
    </form>
    </body> 
    </html>
    Das mit der Abhängigkiet der DorpDowns und dem auslesen aus der Datenbank klappt prima.

    Das einzige Problem ist nun noch, das bei der Auswahl des ersten DropDown Feldes das ganz Formular sofort schon versendet wird.

    Ich denke dies hängt mit dem folgenden Code zusammen
    PHP-Code:
    onchange="document.forms[0].submit()" 
    .
    Ich weiß aber nicht wie da die Änderung aussehen muss, damit das Formular nicht sofort versendet wird, sondern erst am Ende wenn der User auf submit klickt.

    Würde mich freuen, wenn mir da Jemand auf die Sprünge helfen könnte.

    Gruß Daniel

  • #2
    Re: [JavaScript] Triple Combo Formular

    Original geschrieben von dabri
    Ich denke dies hängt mit dem folgenden Code zusammen
    PHP-Code:
    onchange="document.forms[0].submit()" 
    brillant erkannt.
    Ich weiß aber nicht wie da die Änderung aussehen muss, damit das Formular nicht sofort versendet wird, sondern erst am Ende wenn der User auf submit klickt.
    ja, vielleicht nimmst du das mal raus, und schaust was dann passiert ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: [JavaScript] Triple Combo Formular

      Hallo wahsaga

      Original geschrieben von wahsaga
      ja, vielleicht nimmst du das mal raus, und schaust was dann passiert ...? [/B]
      Habe ich gemacht.

      Wenn ich die Stellen raus nehmen, dann wird beim ändern des DropDown das Formular nicht sofort versendet.

      Aber leider ändern sich dann auch die abhängigen DropDowns dahinter nicht.

      Beispiel:

      Code entfernt

      Wenn der Code drin bleibt, ändern sich zwar die DropDowns, aber das Formular wird halt sofort versendet.

      Code vorhanden

      Nur da steh ich jetzt auf dem Schlauch, was muss geändert werden, damit die DropDown Boxen sich automatisch anpassen und das Formular nicht sofort versendet wird.

      Ich freue mich auf Eure Hilfe.

      Danke & Gruß

      Daniel

      Kommentar


      • #4
        Re: Re: Re: [JavaScript] Triple Combo Formular

        Original geschrieben von dabri
        Wenn ich die Stellen raus nehmen, dann wird beim ändern des DropDown das Formular nicht sofort versendet.

        Aber leider ändern sich dann auch die abhängigen DropDowns dahinter nicht.
        na wie denn auch?

        die "veränderten" werte werden mit PHP aus der DB ermittelt - also muss auch eine erneute anfrage an den server erfolgen (was durch abschicken des formular ja auch geschah).


        wenn du das nicht so willst, musst du also erst mal alle möglichen daten zum client übertragen, und die veränderung der abhängigen selectfelder dort per javascript vornehmen.

        schau mal in den codeschnippseln, da gab's mal was von wurzel dafür.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X