[JavaScript] wertebereich in dropdown

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

  • [JavaScript] wertebereich in dropdown

    HAllo Leute,

    ich hab leider zu wenig mit javascript am hut gehabt und muss grad was umsetzen, von dem ich nich mal weiß wie ich hier beginnen soll.


    ich will 2 dropdownmenüs bereitstellen, mit denen man einen uhrzeitbereich einstellt, also z.b: von 13 - 18 Uhr
    also jede uhrzeit in einem dropdown, allerdings darf im zweiten dropdown der stundenbereich erst eine std höher anfangen, als der, den man im linken gewählt hat, damit soll gewährleitet sein, dass die angabe nicht auf den nächsten Tag berechnet werden.
    es geht also immer nur um den Zeitraum eines tages !

    über hilfe oder ansätze wäre ich wirklich sehr dankbar !
    Coder never die, they just GOSUB without RETURN

    Mein System

  • #2
    damit soll gewährleitet sein, dass die angabe nicht auf den nächsten Tag berechnet werden.
    Was machst du denn bei Eingabe von 23 Uhr?

    *move* nach Projekthilfe

    Kommentar


    • #3
      dann darf im zweiten dropdown nur noch 0 Uhr angeboten werden.
      so sollte es dann jedenfalls sein.

      wenn ich die abfrage abschicke gehts an ein php-script, in dem
      dann ein sql-statement dann <=23.59 erfragt
      Coder never die, they just GOSUB without RETURN

      Mein System

      Kommentar


      • #4
        Re: [JavaScript] wertebereich in dropdown

        Original geschrieben von ways
        allerdings darf im zweiten dropdown der stundenbereich erst eine std höher anfangen, als der, den man im linken gewählt hat
        Also scheiterst du an einer simplen If-Abfrage, oder was genau ...?


        Wie man Werte aus Formularfeldern abfragt, dazu hast du dich ja schon selber bei SELFHTML informiert.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ja, das hab ich


          ich bin nun so weit, dass ich allein auf javascript setze,
          und hab es auch so umsetzen können, mit viel knobelei...
          aber das gehört ja als Berufsanfänger dazu

          allerdings hab ich nen kleinen fehler drin,
          wenn ch bei der ersten auswahl von start_time die 23 wähle, ist alles ok und stop_time wird auf 24 gesetzt, ABER wähle ich die 23 erst in einem zweiten versuch, weil ich z.b zuerst (15) die falsche startzeit gewählt habe, dann zählt er stop_time nur um eins hoch.
          so erscheint dann 16, nicht 24.

          kann mir da jemand helfen?

          PHP-Code:
          // Teil 1
          var startHour  parseInt(document.getElementById("start_time").value);     // start_time, ist das erste Dropdown
          var plus1      parseInt(1);     
          var 
          result     startHour+plus1;     
          var 
          toHour     document.forms.form1.stop_time;     // stop_time ist das zweite dropdown

          // Teil 2
              
          var zaehler parseInt(0);
                 for (var 
          result<= 24i++) 
               {
                   
          toHour.options[zaehler] = new Option(i);
                   
          zaehler++;
               } 
          Coder never die, they just GOSUB without RETURN

          Mein System

          Kommentar


          • #6
            hab mal das file ( is eigentlich ne *.php ) angehängt, irgendwo muss ich was mit der schleife übersehen.


            Wäre toll, wenn mir da noch jemand aus der klemme helfen kann !
            Angehängte Dateien
            Coder never die, they just GOSUB without RETURN

            Mein System

            Kommentar


            • #7
              ich beziehe mich jetzt nur auf den geposteten Code, keine Lust auch nur einen Fitzel PHP in dem Zusammenhang ausblenden zu müssen.

              PHP-Code:
              var plus1      parseInt(1); 
              Wozu???

              PHP-Code:
              for (var result<= 24i++) 
                   {
                       
              toHour.options[zaehler] = new Option(i);
                       
              zaehler++;
                   } 
              Kannst du das nicht durch eine Mathematische Operation errechnen???

              Kommentar


              • #8
                mathematische operation ?

                vielleicht hab ich schon tomaten auf den augen vor lauter knobelei !

                es funktioniert ja, sofern ich das "start_time" dropdown nur einmal betätige, wenn ich jedoch die "start_time" option mehr als einmal verstelle, dann klappt das ganze schon nicht mehr anständig...

                noch fällt der groschen nicht
                Coder never die, they just GOSUB without RETURN

                Mein System

                Kommentar


                • #9
                  War auch quatsch...

                  Ich hatte im wesentlichen auf den zaehler++ geachtet und nicht gesehen, dass du den für das Dropdown benutzt.

                  Kommentar


                  • #10
                    hehe.. achso


                    ja, leider fehlt mir wie mit fehlen noch die übung und einiges an erfahrung... ich hab da einige stunden dran gesessen

                    komme aber nicht wirklich vorran, im ersten moment wirkte das so simpel auf mich, aber wie schon gesagt, funktioniert das ganze nur, wenn ich das start_time dropdown nur einmal verwende..
                    dann stimmt die anzeige im stop_time, wenn ich aber es mehrfach verwende, dann stimmt das mit schleifenausgabe im stop_time nicht mehr....
                    Coder never die, they just GOSUB without RETURN

                    Mein System

                    Kommentar


                    • #11
                      Hab zwar immer noch keinen vernünftigen Codeausschnitt gesehen, aber werden an irgendeiner stelle vielleicht variablen nicht wieder zurück gesetzt?

                      ansonsten halt mal nen kurzen Auszug posten.

                      Kommentar


                      • #12
                        das mit dem zurücksetzen ist sicher das problem, denn ich kann ja sehen, dass die schleife die ausgabe um die anzahl erweitert, wie ich sie bei der ersten auswahl eingestellt hatte...

                        irgendwie wird das toHour.length übernommen, weiß aber nicht, wie ich das einem reset unterziehe...


                        ich hab das script im wesentlich nicht erweitert,

                        PHP-Code:

                        function change()
                        {
                        var 
                        startHour  parseInt(document.getElementById("start_time").value);     // start_time, ist das erste Dropdown
                        var plus1      parseInt(1);     
                        var 
                        result     startHour+plus1;     
                        var 
                        toHour     document.forms.form1.stop_time;     // stop_time ist das zweite dropdown

                            // Teil 2    
                                
                        var zaehler parseInt(0);
                                for (var 
                        result<= 24i++) 
                                  {
                                    
                        toHour.options[zaehler] = new Option(i);
                                    
                        zaehler++;
                                  }


                        im body

                        PHP-Code:
                        <select name="start_time" id="start_time" style="width:100px" onchange="change()">
                          <
                        option selected="selected">Wähle</option>
                          <
                        option value="0">00 Uhr</option>
                          ....
                          </
                        select>

                        <
                        select name="stop_time" id="stop_time" style="width:100px"></select
                        Coder never die, they just GOSUB without RETURN

                        Mein System

                        Kommentar


                        • #13
                          irgendwie wird das toHour.length übernommen, weiß aber nicht, wie ich das einem reset unterziehe...
                          Von welchen length redest du?

                          Und wieso kannst du toHour nicht auf einen Initialwert setzen?

                          Kommentar


                          • #14
                            Original geschrieben von TobiaZ
                            Von welchen length redest du?

                            Und wieso kannst du toHour nicht auf einen Initialwert setzen?


                            wenn ich das vorher initialisiere passiert kein unterschied

                            das length von document.forms.form1.stop_time;
                            das verwende ich gar nicht, aber nach prüfen hab ich gesehen, dass dies der grund dafür zu sein scheint
                            Coder never die, they just GOSUB without RETURN

                            Mein System

                            Kommentar


                            • #15
                              wenn ich das vorher initialisiere passiert kein unterschied
                              Vorher bringt ja nichts. Es muss ja beim Ändern passieren.

                              Haste mal nen "funktionsfähiges" Beispiel online?

                              Kommentar

                              Lädt...
                              X