Formular automatisch erweitern

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

  • Formular automatisch erweitern

    Ich habe in einem Formular eine Auswahlliste, nun möchte ich mit JavaScript folgendes bewirken: Wenn einer beispielsweise auf bier klickt soll automatisch ein zweites Auswahlfeld zur Verfügung stehen, aber das nur bei Bier angezeigt wird, bei den übrigen (auto, obst) soll nix passieren...

    <select name="basis">
    <option value="">--</option>
    <option value="auto">auto</option>
    <option value="obst">obst</option>
    <option value="bier">bier</option>
    </select>

    <select name="bierart">
    <option value="">--</option>
    <option value="pils">pils</option>
    <option value="dunkel">dunkel</option>
    </select>

    Danke für eure Hilfe!

  • #2
    <select name="basis" onChange="document.getElementById("bierart").style.visibility = ('bier'==this.options[this.selectedIndex].value ? 'visible':'hidden');">
    <option value="">--</option>
    <option value="auto">auto</option>
    <option value="obst">obst</option>
    <option value="bier">bier</option>
    </select>

    <select name="bierart" id="bierart" style="display:inline;visibility:hidden;">
    <option value="">--</option>
    <option value="pils">pils</option>
    <option value="dunkel">dunkel</option>
    </select>

    zum Nachlesen: SELFHTML: Positionierung und Anzeige von Elementen
    Zuletzt geändert von Titus; 27.05.2005, 10:58.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Danke, das sieht sehr gut aus, funktioniert nur noch nicht so ganz...vll. ein Fehler drin?

      Kommentar


      • #4
        äh japp ... nur ne Kleinigkeit, aber die Wirkung ...

        getElementById("bierart") --> getElementById('bierart')

        und schon funzt es

        (oder die Zeile in eine Funktion pappen)
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          merci teste ich mal eben...jo, klappt super, vielen Dank!

          Kommentar


          • #6
            Hallo,

            wie könnte man o.g. Funktion nun mit dynamischen "Options" umbauen?

            ich habe folgendes Optionsfeld:

            PHP-Code:


            <select name="besteller" size="1" >
               <?PHP
                
            if ($query "SELECT * FROM bimondo_user order by user_nick") {
                
            $result mysql_query($query);
                while (
            $tabelle mysql_fetch_array($result)) {?>
               <option value="<?=$tabelle[user_nick]?>"><?=$tabelle[user_nick]?>
            </option>
               <?PHP ?>
               <?PHP ?>
            in der Tabelle bimondo_user habe ich ausser "user_nick" auch das
            Feld "user_email", und die Email würde ich gerne als (deaktiviertes) Input-
            Feld angezeigt haben, wenn man einen Namen des Optionsfeldes anklickt...


            Nun habe ich es so gelöst:

            PHP-Code:
            <select name="altbesteller" size="1" on
             Change="document.getElementByID('user_email').style.visibility = 
            ('$user_nick'==this.options[this.selectedIndex].value ? 'visible':'hidden');">

               <?PHP
                
            if ($query "SELECT * FROM bimondo_user order by user_nick") {
                
            $result mysql_query($query);
                while (
            $tabelle mysql_fetch_array($result)) {?>
                <option value="<?=$tabelle[user_nick]?>"><?=$tabelle[user_nick]?></option>
               <?PHP ?>
               <?PHP ?>
              </select>
              <input type="text" disabled="disabled" name="user_email" 
             value="$user_email" style="display:inline;visibility:hidden;">
            ...das funktoniert so aber nicht...

            Kann mir jemand ein wenig auf die Sprünge helfen?


            Danke

            bistar

            Kommentar


            • #7
              Original geschrieben von bistar
              ...das funktoniert so aber nicht...
              OffTopic:
              was das nachvollziehbare beschreiben von problemen angeht, haben wir hier im forum echt einen haufen verdammter genies rumhängen ...


              <select name="altbesteller" size="1" on
              Change="document.getElementByID('user_email').style.visibility =
              ('$user_nick'==this.options[this.selectedIndex].value ? 'visible':'hidden');">
              ...
              <input type="text" disabled="disabled" name="user_email"
              value="$user_email" style="display:inline;visibility:hidden;"
              dass die beiden variablennamen dort nicht durch ihre werte ersetzt werden, weil sie außerhalb des <?php>-bereiches stehen, hast du aber bedacht?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hallo,

                ja sorry...also mit "nicht funktionieren" meinte ich, dass bei "Klick" auf den
                Usernamen kein weiteres Feld daneben angezeigt wird...
                Ich habe nun auch, wie vorhin übersehen, die Variablen innerhalb der
                PHP-Tags gesetzt

                PHP-Code:
                <select name="besteller" size="1" on
                 Change="document.getElementByID('user_email').style.visibility = 
                ('<?=$user_nick?>'==this.options[this.selectedIndex].value ? 'visible':'hidden');">

                   <?PHP
                    
                if ($query "SELECT * FROM bimondo_user order by user_nick") {
                    
                $result mysql_query($query);
                    while (
                $tabelle mysql_fetch_array($result)) {?>
                    <option value="<?=$tabelle[user_nick]?>"><?=$tabelle[user_nick]?></option>
                   <?PHP ?>
                   <?PHP ?>
                  </select>
                  <input type="text" disabled="disabled" name="user_email" 
                 value="<?=$user_email?>" style="display:inline;visibility:hidden;"></td>
                Eine Fehlermeldung erhalte ich bei Ausführung nicht.

                aber es erscheint nun trotzdem kein Feld mit der Email. Es fehlt wohl die
                Zuweisung, d.h. welche Email von welcher User_id angezeigt werden soll,
                oder?

                Kommentar


                • #9
                  es fehlt vor allem erst mal ein element mit der ID user_email.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar

                  Lädt...
                  X