gary: Wo steckt der angezeigte Wert ?

Hi nochmals,

Ich suche seit Wochen eine Möglichkeit, einen angezeigten bzw eingestellten Wert zu erfassen und in eine Variable zu setzen. Nach dem Motto var Zeile00 = Eingestellter Wert.

Hier der relevante Passus:

<form method="POST" action="--WEBBOT-SELF--" onSubmit="">
          <!--webbot bot="SaveResults" startspan
          U-File="../_private/form_results.txt" S-Format="TEXT/CSV"
          S-Label-Fields="TRUE" --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--webbot
          bot="SaveResults" endspan -->
          <p align="center"><select size="1" name="D00">
            <option selected value="0">0</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
          </select></p>
        </form>

In natura auf www.vam-shop.com unter dem link shop und dann deutsche flagge klicken. Ich benötige die Information, die z. B. im ersten Rollmenü ausgewählt ist. Das kann doch nicht so schwer sein. Mit der function und if- anweisung komm ich nicht vorwärts.

Merci im voraus gruss gary.

  1. Hallo!

    Ich benötige die Information, die z. B. im ersten Rollmenü ausgewählt ist.

    Bis zu diesem Satz hatte ich keine Ahnung, was du willst.

    Formulare -> Formularelemente -> Options

    In deinem Fall dürfte wohl Options, und insbesondere value, interessant sein.

    ciao, ww

    --
    Schäuble:
      "Wir können alles. Außer Rechtsstaat."
    1. Sorry,

      wenn ich mich unklar ausgedrückt habe. Wenn man sich mit einer Sache lage beschäftigt, dann vergisst man das andere Leute in die eigene Arbeit gar nicht eingebunden sind.

      Ich habe mir alle deine vier Links als Lesezeichen gesetzt und werd sie durcharbeiten. Das ich Scriptanfänger bin hast du sicher schon bemerkt ;-).

      Gruss und merci gary...

      1. Hallo!

        Sorry,
        wenn ich mich unklar ausgedrückt habe. Wenn man sich mit einer Sache lage beschäftigt, dann vergisst man das andere Leute in die eigene Arbeit gar nicht eingebunden sind.

        Passt schon! Geht mir manchmal genauso.

        Ich habe mir alle deine vier Links als Lesezeichen gesetzt und werd sie durcharbeiten. Das ich Scriptanfänger bin hast du sicher schon bemerkt ;-).

        Ja, hab ich. Das waren wir alle mal :-))

        ciao, ww

        --
        Schäuble:
          "Wir können alles. Außer Rechtsstaat."
        1. Hi WW,

          Programm läuft einwandfrei. Hier dein modifizierter testcode:

          <html>
          <head>
          <title>Test</title>
          <script type="text/javascript">
          function CheckAuswahl () {
            for (i = 0; i < document.Testform.Auswahl.length; ++i)
              if (document.Testform.Auswahl.options[i].selected == true)
              var Preis00 = 119.95 * (document.Testform.Auswahl.options[i].value);
           alert (Preis00)
          }
          </script>
          </head>
          <body>
          <form name="Testform" action="">
          <select name="Auswahl" size="1" onchange="CheckAuswahl()">
          <option value= 1 >x 1</option>
          <option value= 2 >x 2</option>
          <option value= 3 >x 3</option>
          <option value= 4 >x 4</option>
          <option value= 5 >x 5</option>
          </select>
          </form>
          </body>
          </html>

          Einziger wehrmutstropfen: Endet der errechnete Preis auf z.B. 10,90 Euro, zeigt mir das Programm 10.9 Euro an und unterschlagt die Ziffer null. Bei 10.95 hingegen ist alles ok. Wieso löscht Javascript die null ?

          gruss gary und danke nochmals, denn ich war wirklich schon lange an diesem auswahlproblem.

          1. Hallo,

            Einziger wehrmutstropfen: Endet der errechnete Preis auf z.B. 10,90 Euro, zeigt mir das Programm 10.9 Euro an und unterschlagt die Ziffer null. Bei 10.95 hingegen ist alles ok. Wieso löscht Javascript die null ?

            das ist völlig normal - es ist in allen Programmiersprachen üblich, bei Fließkommazahlen nur soviele Ziffern wie nötig anzugeben. Das "Problem" trifft dich noch heftiger, wenn du zufällig mal einen glatten Euro-Betrag hast, dann werden dir nämlich _gar keine_ Nachkommastellen angezeigt.

            Abhilfe: Berechne die Preise intern alle in Cent, und gib bei der Ausgabe den Vor- und Nachkommaanteil getrennt aus:

            ~~~javascript vorkomma  = Math.floor(Preis/100);
              nachkomma = Preis % 100;
              alert(vorkomma + "." + nachkomma);

              
            Damit vermeidest du auch das Rundungsproblem, das bei der Addition von Fließkommazahlen gern auftritt und dazu führen kann, dass du nach dem Zusammenzählen von mehreren Posten plötzlich 223.80000001 EUR rauskriegst.  
              
            Aber Vorsicht: Bei negativen Werten gibt der obige Codefetzen unsinnige Werte aus.  
              
            So long,  
             Martin  
            
            -- 
            Es gibt Dinge, die sind sooo falsch, dass nicht einmal das Gegenteil stimmt.
            
            1. Hallihallo,

              Auch diese Antwort war ein volltreffer. Geht perfekt.

              By the way:

              Was macht den Math.floor genau ?

              Und was bedeutet das % (Prozentzeichen) in diesem Beispiel ?

              Sorry bin halt neugierig. Ein Script abschreiben ist leicht und kann jeder. Aber einen Script verstehen dazu braucht es dann schon mehr. Und ich möcht halt auch gern wissen was diese Dinge bewirken.

              Gruss Gary.

              1. Hallo gary,

                Auch diese Antwort war ein volltreffer. Geht perfekt.

                das freut mich zu hören. :-)

                Was macht den Math.floor genau ?

                Och, ich bitte dich ... ein bisschen SELF-Recherche hätte ich jetzt schon erwartet.

                Und was bedeutet das % (Prozentzeichen) in diesem Beispiel ?

                Okay, das ist etwas schwieriger zu finden. Zumindest in SELFHTML finde ich diesen Operator auf die Schnelle auch nicht.

                Also, das "%" steht für den Modulo-Operator. Modulo ist eine nur für ganzzahlige Werte definierte Division, die als Ergebnis nicht den Quotienten ergibt, sondern den Divisionsrest:

                m = a % b;

                "Dividiere a durch b und weise den Divisionsrest m zu."
                Eine Modulo-Division durch 100 ergibt aufgrund der Natur des Zahlensystems immer die letzten beiden Stellen einer Zahl, eine Modulo-Division durch 10 die letzte Stelle.

                Sorry bin halt neugierig. Ein Script abschreiben ist leicht und kann jeder. Aber einen Script verstehen dazu braucht es dann schon mehr. Und ich möcht halt auch gern wissen was diese Dinge bewirken.

                Genau so soll es auch sein.

                Schönen Abend noch,
                 Martin

                --
                Ist die Katze gesund,
                freut sich der Hund.