Ankündigung

Einklappen
Keine Ankündigung bisher.

Dropdown soll gewählten Wert bei reload behalten

Einklappen

Neue Werbung 2019

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

  • Dropdown soll gewählten Wert bei reload behalten

    Moinz.
    Ich muss ja mal anmerken, dass ich das Forum hier total gern hab. Irgendwie gefallen mir die Leute, die hier rumflitzen. Aber dies nur am Rande.

    Ich steh ein wenig auf dem Schlauch bei dem Code hier.

    Code:
    ...
    ...
    <body>
    
    <div>
        <FORM method="post" action="http://www.meineDomain.de/dropdown.html">
        <SELECT name="myDD" style="min-width: 100px; color: #2055A1;" onChange="this.form.submit();">
            <option value="1" <?=($_REQUEST["myDD"]=="1")?"selected":"";?>>Januar</option>
            <option value="2" <?=($_REQUEST["myDD"]=="2")?"selected":"";?>>Feb</option>
            <option value="3" <?=($_REQUEST["myDD"]=="3")?"selected":"";?>>März</option>
            <option value="4" <?=($_REQUEST["myDD"]=="4")?"selected":"";?>>April</option>
            <option value="5" <?=($_REQUEST["myDD"]=="5")?"selected":"";?>>Mai</option>
        </SELECT>
        </FORM>
    </div>
    
    </body>
    ...
    Beim Reload sollte die vorher gewählte Zeile bestehen bleiben aber er switcht immer auf "Januar" zurück. Das hab ich so aus nem Script und bastel gerade damit rum aber ich muss einen dicken Fehler bereits am Anfang gemacht haben....oder das Script.
    Hat jemand ne Idee oder kennt ne Seite, wo so was erklärt wird?


  • #2
    Du verwendest selected falsch.
    HTML option selected Attribute
    sigpic

    Kommentar


    • #3
      selected allein ist schon korrekt, wenn es nicht XHTML-Konform sein muss.

      Ich würde mal die Klammern anders setzen und Long-Tags verwenden:
      Code:
      <?php echo ($_REQUEST["myDD"] == 4 ? "selected" : ""); ?>
      Ansonsten kannst du auch einfach mal in den Browserquelltext schauen, um zu sehen, was PHP dir da so erzeugt.
      http://hallophp.de

      Kommentar


      • #4
        Das hat nich ganz gefruchtet. Es heißt jetzt auch ">April" und nich mehr "April" bei den Monaten.
        Der Quelltext aus dem HTML sieht so aus:
        Code:
        <FORM method="post" action="http://www.meineDomain.de/dropdown.html">
          <SELECT name="myDD" style="min-width: 100px; color: #2055A1;" onChange="this.form.submit();">
            <option value="3" <?php echo ($_REQUEST["myDD"] == 3 ? "selected" : "");?> >März</option>
            <option value="4" <?php echo ($_REQUEST["myDD"] == 4 ? "selected" : "");?> >April</option>
            <option value="5" <?php echo ($_REQUEST["myDD"] == 5 ? "selected" : "");?> >Mai</option>
            <option value="6" <?php echo ($_REQUEST["myDD"] == 6 ? "selected" : "");?> >Juni</option>
          </SELECT>
        </FORM>
        Das hat man davon, wenn man Copypaste verwendet. Also falls jemand ein gutes How-to zu so was hat, ist ihm mein Dank gewiss.

        Kommentar


        • #5
          Wenn im HTML-Quelltext, den der Browser erhält, immer noch die <?php-Tags drin stehen - dann ist die Scriptdatei offensichtlich gar nicht als PHP geparst worden.

          Hast du für diese Datei ebenfalls die Endung .html verwendet, wie für die, an die du auch das Formular senden willst? Per Default werden meist nur Dateien mit der Endung .php als PHP geparst.

          Kommentar


          • #6
            Huch, erneut mein Fehler. Der Quelltext sieht so aus

            Code:
            <FORM method="post" action="http://www.meineDomain.de/dropdown.html">
              <SELECT name="myDD" style="min-width: 100px; color: #2055A1;" onChange="this.form.submit();">
                <option value="3">&gt;März</option>
                <option value="4">&gt;April</option>
                <option value="5">&gt;Mai</option>
                <option value="6">&gt;Juni</option>
              </SELECT>
            </FORM>
            Zumindest weiß ich jetzt, wo das extra > herkommt...

            Kommentar


            • #7
              Was bedeutet bei dir "reload"? Du sendest das Formular ab und zeigst nochmal das selbe an? Oder bedeutet es bei dir der User aktualisiert die Seite in dem er auf F5 oder "aktualisieren" klickt? Bei Zweiterem kannst du das nicht wirklich beeinflussen was danach selektiert ist.

              Kommentar


              • #8
                Na Reload müsste doch kommen, wenn ich ein anderes Feld auswähle. Da müsste dann doch das "onChange..." greifen und er schickt alles ab. Und mit dem Link bei "action" wird die Seite angegeben, die er dann aufrufen soll...wenn ich das alles nich falsch verstanden hab.

                Kommentar


                • #9
                  Ja das schon, aber du hättest mit reload eben auch einfach das aktualisieren der Seite meinen können, von daher musst du erst klar machen was du genau meinst!

                  Kommentar


                  • #10
                    Gibt es jetzt eigentlich noch ein Problem oder hast du es lösen können?
                    http://hallophp.de

                    Kommentar


                    • #11
                      Ja und 1/2 Ja. Ich hab einen Workaround mit JQuery gebastelt aber der klappt nur halb. Meinem select hab ich die ID myselect verpasst, den ganzen option-Teil gelöscht und dann das hier in einer .js gecodet.

                      Code:
                      $(document).ready(function() {
                      	initDropdown();
                      
                      });
                      
                      function initDropdown() {
                      	$("#myselect").append("<option value='1'>Januar</option>");
                      	$("#myselect").append("<option value='2'>Februar</option>");
                      	$("#myselect").append("<option value='3'>März</option>");
                      	$("#myselect").append("<option value='4'>April</option>");
                      	$("#myselect").append("<option value='5'>Mai</option>");
                      	$("#myselect").append("<option value='6'>Juni</option>");
                      	$("#myselect").append("<option value='7'>Juli</option>");
                      	$("#myselect").append("<option value='8'>August</option>");
                      	$("#myselect").append("<option value='9'>September</option>");
                      	$("#myselect").append("<option value='10'>Oktober</option>");
                      	$("#myselect").append("<option value='11'>November</option>");
                      	$("#myselect").append("<option value='12'>Dezember</option>");
                      }
                      Jetzt kann ich mit

                      Code:
                      $("#myselect option:eq(11)").attr("selected", "selected");
                      immer eine Option festlegen...und sobald ich rausgefunden hab, wie ich den eq dynamisch machen kann, ist der Sack zu. Eigentlich muss ich "nur" den Wert aus dem POST rauskriegen...allerdings hab ich so das Gefühl, dass da noch irgendwas dickes kommen wird. ^^

                      Kommentar


                      • #12
                        Zitat von TZP Beitrag anzeigen
                        Ich hab einen Workaround mit JQuery gebastelt
                        Das klingt eher nach ziemlichem Blödsinn.

                        Kommentar


                        • #13
                          Wenn du in mehreren Foren quasi dasselbe postest, dann weise wenigstens darauf hin. Es ist zum Schwarzärgern, wenn man feststellt, dass man alles doppelt durchgekaut hat. Und lies hier mal die Forenregeln...

                          - Dropdown-Menü behält nicht seinen gewählten Wert

                          Erstelle testweise eine Datei test.php mit dem folgenden Inhalt und rufe sie im Browser auf:

                          PHP-Code:
                          <?php phpinfo();
                          Dann wird sich klären, ob du PHP hast oder nicht.

                          Das gezeigte JavaScript ist an der Stelle meiner Ansicht nach völlig deplatziert.

                          Kommentar


                          • #14
                            Wie soll ich dein Posting deuten, mermshaus? Soll ich den Thread dicht machen oder willst du ihm noch weiter helfen?

                            @TE
                            Bitte beachten: php.de - Ankündigungen im Forum : PHP Einsteiger

                            Ich bin jedenfalls raus.
                            http://hallophp.de

                            Kommentar


                            • #15
                              Entschuldige...ich hab nich gewusst, dass quergelesen wird. Ich war viel in Typo3-Foren aktiv und dort war man froh, wenn es überhaupt jemand gelesen hat. ^^

                              Das JS falsch gewählt war, betrübt mich ein wenig...ich fand die Idee bis gerad eben nich so schlecht.

                              Kommentar

                              Lädt...
                              X