Re: mehrfachauswahl bei optionsfeld - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von olaf (59 Beiträge) am Samstag, 15.November.2003, 16:36.
    Re: mehrfachauswahl bei optionsfeld

      moin leutz,

      ein mehrfachauswahl ohne do action geht nun doch auch ohne java-script.

      bei dem select-tag muss der variablen name durch das : ergänzt werden, z.b.: "<select name="auswahl:=" size="5" multiple>" .

      damit erhält man in dem hash %_put einen eintrag mit dem schlüssel "auswahl" und den ausgewählten optionen durch das \n getrennt.

      also eigentlich genial einfach ;-).

      gruss
      olaf


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von olaf (59 Beiträge) am Donnerstag, 13.November.2003, 18:10.
    mehrfachauswahl bei optionsfeld

      moin leutz,

      ich hab mich mal ein wenig mit javascipt befasst. ist schon interessant was so alles in selfhtml drin steht :). also, mit java gibt es eine möglichkeit an die mehrfachauswahl bei optionsfeldern zu kommen. wie schon mal irgendwo erwähnt gibt es die schwachstelle, das user die java-script unterstützung ausschalten können.

      nun meine lösung:

      <perl>
      

      @option=split /&/,$optfeld;

      out "options-string = >$optfeld< <br><br>gewählte optionen:<br>";
      

      for $a (@option){
      out " - $a <br>";
      }
      out <<EOF;
      <br><br>
      <script type="text/javascript">
      <!--
      function ChkAuswahl() {
       var j=0;
       for(i=0;i<document.eing.Auswahl.length;++i){
        if(document.eing.Auswahl.options[i].selected == true){
         if (j==1){
          document.eing.elements[1].value = document.eing.elements[1].value + "&";
         }
            document.eing.elements[1].value = document.eing.elements[1].value + document.eing.Auswahl.options[i].text;
         j=1;
        }
       }
      }
      //-->
      </script>
      

      <form name="eing" action="http://www.klezocker.de/baseportal?htx=$htx" method="post" enctype="multipart/form-data" onSubmit="ChkAuswahl()">
      <input type=hidden name="htx=" value="$htx">
      <input type=hidden name="optfeld=">
      <select name="Auswahl" size="5" multiple>
      <option value="1">Goethe</option>
      <option value="2">Schiller</option>
      <option value="3">Guildo Horn</option>
      <option value="4">Homer</option>
      <option value="5">Fontane</option>
      </select>
      <input type="submit" name="submit=" value="send">
      </form>
      

      EOF
      </perl>
      

      wichtig dabei ist das hidden <input> feld an zweiter stelle. es MUSS an zweiter stelle stehen, weil mit elements[1] darauf zu gegriffen werden muss.
      die kleine funktion schaut nun also nach, welche optionen "selected" sind und fühgt jetzt in meinem beispiel den text dem feld "optfeld=" hinzu. wenn man in der funktion aus dem "+ document.eing.Auswahl.options[i].text" ein "+ document.eing.Auswahl.options[i].value" macht, werden die values genommen.

      mit "@option=split /&/,$optfeld;" wird der string zerlegt und in dem array @option gespeichert.

      ich nutze hier das & als trennzeichen für die einzelenen optionen. das kann also so nicht als information übertragen werden. kann aber nach belieben geändert werden.

      ich hoffe ich konnte meine verworrenen gedanken halbwegs geordnet rüber bringen.

      gruß
      olaf

     Antworten

    Beitrag von olaf (59 Beiträge) am Samstag, 15.November.2003, 16:36.
    Re: mehrfachauswahl bei optionsfeld

      moin leutz,

      ein mehrfachauswahl ohne do action geht nun doch auch ohne java-script.

      bei dem select-tag muss der variablen name durch das : ergänzt werden, z.b.: "<select name="auswahl:=" size="5" multiple>" .

      damit erhält man in dem hash %_put einen eintrag mit dem schlüssel "auswahl" und den ausgewählten optionen durch das \n getrennt.

      also eigentlich genial einfach ;-).

      gruss
      olaf

     Antworten


     
 Liste der Einträge von 33900 bis 34050:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.38s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!