xpfreund: selectfeld abfragen

Hallo,

also ich habe hier eine Auswahl, deren Ergebnis über den untenstehenden Button an document.letters.mode.value übergeben werden soll.
Jetzt weiß ich nicht, wie ich das nun übergeben kann?
hatte vorher ne Perl-Variable, die ich aber nicht über JScript ändern konnte.
Jetzt dachte ich nehm ich halt ne JScript-Variable, die bei onchange geändert und beim Ausführen mitgegeben wird. Das klappt aber auch nicht.
Um die Auswahl steht übrigens kein Formular und das Teil muss nur im Firefox bei mir laufen, daher sollte kein Formular nötig sein.
Habt ihr ne Ahnung, wie ich das lösen kann (ohne Formular)?

print "<select name=\"function\" size=\"1\" onchange=\"var function=this.function.options[this.function.selectedIndex].value\">\n";  
print "<option value=\"delsel\">Löschen</option>\n";  
print "<option value=\"res\">letzte Mail erneut versenden</option>\n";  
print "<option value=\"cm\">Mailnummer ändern</option>\n";  
print "</select>\n";  
print " <input type=\"Button\" value=\"Ausführen\" onClick=\"document.letters.mode.value=function\" name=\"Button\">";  

gruß aus Senftenberg am See

  1. Mahlzeit xpfreund,

    Du hast anscheinend ein rein Client-seitiges Problem. PHP-Code ist dabei absolut irrelevant (siehe Zitat 1353).

    [code lang=perl]print "<select name="function" size="1" onchange="var function=this.function.options[this.function.selectedIndex].value">\n";

    Wenn sich also die Auswahl ändert (und die Auswahlliste den Fokus verliert), wird eine Variable namens "function" mit dem aktuell ausgewählten Wert initialisiert. Da "function" ein <http://de.selfhtml.org/javascript/sprache/reserviert.htm@title=reserviertes Wort> in Javascript ist, solltest Du Dir vielleicht überlegen, ob Du die Variable nicht vielleicht anders benennen willst ...

    print " <input type="Button" value="Ausführen" onClick="document.letters.mode.value=function" name="Button">";

    Beim Klick auf diesen Button soll vermutlich der Inhalt der Variablen namens "function" (zur Problematik dieses Namens s.o.) in der Eigenschaft namens "value" des Unterobjekts namens "mode" des Unterobjekts namens "letters" des Dokument-Objekts abgelegt werden. Bist Du sicher, dass ein solches Objekt (mit der Eigenschaft) existiert? In Deinem gezeigten Code findet sich das nämlich nicht ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo,

      Beim Klick auf diesen Button soll vermutlich der Inhalt der Variablen
      namens "function" (zur Problematik dieses Namens s.o.) in der
      Eigenschaft namens "value" des Unterobjekts namens "mode" des
      Unterobjekts namens "letters" des Dokument-Objekts abgelegt werden. Bist >> Du sicher, dass ein solches Objekt (mit der Eigenschaft) existiert? In >> Deinem gezeigten Code findet sich das nämlich nicht ...

      Gibts hundertpro, das ganze Skript hier zu zeigen, würde aber den Rahmen sprengen.
      Alternativ so:

        
      print "<select name=\"funktion\" size=\"1\" onchange=\"var auswahl=this.funktion.options[this.funktion.selectedIndex].value\">\n";  
      print "<option value=\"delsel\">Löschen</option>\n";  
      print "<option value=\"res\">letzte Mail erneut versenden</option>\n";  
      print "<option value=\"cm\">Mailnummer ändern</option>\n";  
      print "</select>\n";  
      print " <input type=\"Button\" value=\"Ausführen\" onClick=\"document.letters.mode.value=auswahl\" name=\"Button\">";  
      
      

      aber klappt trotzdem noch nicht.

      gruß aus Senftenberg am See

      1. Hallo,

        habe jetzt mal ne form drumgelegt.
        Ob der Button submit oder Button heißt, kommt aufs selbe raus.
        Wenn ich bei alert nen String reintippe oder die Variable direkt vorm alert belege, läuft alles.
        Wenn ich aber nur die Variable haben will, wird die Box nicht angezeigt.
        Scheint nicht mal in der Variable anzukommen.
        Ich weiß echt nich mehr weiter.
        Was läuft hier nicht rund?

          
        print "<form method=\"POST\" action=\"$scripturl\" name=form1>";  
        print "<select name=\"funktion\" size=\"1\" onchange=\"var auswahl=document.form1.funktion.options[document.form1.funktion.selectedIndex].value\">\n";  
        print "<option value=\"delsel\">Löschen</option>\n";  
        print "<option value=\"res\">letzte Mail erneut versenden</option>\n";  
        print "<option value=\"cm\">Mailnummer ändern</option>\n";  
        print "</select>\n";  
        print " <input type=\"Button\" value=\"Ausführen\" onClick=alert(auswahl) name=\"Button2\">";  
        print "</form>";  
        
        

        gruß aus Senftenberg am See

      2. Hallo,

        Tja, das mit der Variable wohl nicht funktioniert, bzw. keiner weiß wie, hab ich die document-Abfrage jetzt direkt in die alert getippt und da gehts, also werd ich versuchen, das so ins Script einzubauen.

        gruß aus Senftenberg am See

    2. Hallo,

      habe endlich die Lösung.
      Über Webdeveloper habe ich festgestellt, dass die Variable cWahl, die bei onchange erstellt und belegt wurde, beim Klick nicht zu sehen war. Daher habe ich die Initialisierung von cWahl in den Scriptbereich verlegt. Damit gehts und nun kann startfunc die entsprechenden Funktionen starten und es ist dank dem "this...", wie geplant, kein Formular nötig.
      Vielen Dank an alle

        
      <script language="javascript">  
      var cWahl;  
      function StartFunc(cFunc) {";  
      alert(cFunc);  
      }  
      </script>  
        
      <select name="funktion" size="1" onchange="cWahl=this.options[this.selectedIndex].value;">  
      <option value="delsel">Löschen</option>  
      <option value="res">letzte Mail erneut versenden</option>  
      <option value="cm">Mailnummer ändern</option>  
      </select>  
      <input style="font-family: Tahoma, Verdana; font-size: 8pt" type="Button" value="Ausführen" onClick="StartFunc(cWahl); " name="Button2">  
      
      

      gruß aus Senftenberg am See

  2. Hallo,

    Nur mal so ein Tipp: function ist ein Schlüsselwort, was in deiner jetzigen Verwendung zu Problemen führen dürfte.

    Ich verstehe nicht warum du keine Formulare verwenden willst, aber du könntest zum Beispiel mit Javascript zu einer Seite weiterleiten und dabei an die URL einen Querystring mit der ausgewählten Variable anhängen.

    Viele Grüße Novi

    --
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)
  3. Hallo

    Du hast in Perl noch einiges zu entdecken
    Ich schenke dir ein q() und ein qq()

    Ansonsten bist du hier gebeten dein Javascript Problem ohne dein Perl Problem zu präsentieren.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Hallo,

      hier nochmal eine html-Version des ganzen.

        
      <form method="POST" action="$scripturl" name=form1>  
      <select name="funktion" size="1" onchange="var auswahl=document.form1.funktion.options[document.form1.funktion.selectedIndex].value">  
      <option value="delsel">Löschen</option>  
      <option value="res">letzte Mail erneut versenden</option>  
      <option value="cm">Mailnummer ändern</option>  
      </select>  
      <input type="Button" value="Ausführen" onClick=alert(auswahl) name="Button2">  
      </form>  
      
      

      gruß aus Senftenberg am See

      1. hier nochmal eine html-Version des ganzen.

        <form method="POST" action="$scripturl" name=form1>
        <select name="funktion" size="1" onchange="var auswahl=document.form1.funktion.options[document.form1.funktion.selectedIndex].value">

        document.form1.funktion
        ist in diesem Kontext nichts anderes als
          this
        also

        onchange="var auswahl=this.options[this.selectedIndex].value"

        <option value="delsel">Löschen</option>
        <option value="res">letzte Mail erneut versenden</option>
        <option value="cm">Mailnummer ändern</option>
        </select>
        <input type="Button" value="Ausführen" onClick=alert(auswahl) name="Button2">

        Ich überlege noch, wie
          onClick=alert(auswahl)
        geparst wird
        ich schenke dir ein paar """""""""""""

        </form>

          
        mfg Beat
        
        -- 
        
        ><o(((°>           ><o(((°>  
        
           <°)))o><                     ><o(((°>o  
        Der Valigator leibt diese Fische
        
        1. Hallo Beat,

          hier nochmal eine html-Version des ganzen.
          [...]
          </form>
          mfg Beat

          wolltest du uns auch etwas mitteilen? Dann tu das doch bitte.

          So long,
           Martin

          --
          Einer aktuellen Erhebung zufolge sind zehn von neun Ehefrauen eifersüchtig auf ihren Mann.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. Hallo Beat,

            hier nochmal eine html-Version des ganzen.
            [...]
            </form>
            mfg Beat

            wolltest du uns auch etwas mitteilen? Dann tu das doch bitte.

            Ja und zwar:
            a) ich bin am essen
            b) lerne, zwischen den Zeilen zu lesen.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Hallo :)

              a) ich bin am essen
              b) lerne, zwischen den Zeilen zu lesen.

              Mit vollem Mund schreibt man nicht.
              Vor allem nicht dann, wenn man mit den Fingern isst.

              mfg
              cygnus

              --
              Die Sache mit der Angel und dem  ><o(((°>  hat immer einen Haken ...