Auswahlliste mit aktuellem Monat vorselektiern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    @Kropff

    hab das auch ohne DB probiert:
    HTML Code:
    <select name="anfang-jahre" size="1">
    PHP Code:
    $jahr = array('2009','2010');
    $aktuelles_jahr date("Y");
      foreach(
    $jahr as $jahr_value)
      {
        echo 
    '<option value="'.$jahr_value.'"';
        if( isset(
    $_POST['anfang-jahre'])  && $_POST['anfang-jahre'] == $jahr_value)
      {
            echo 
    'selected="selected"';
        }
        else if(
    $aktuelles_jahr == $jahr_value)
      {
      echo 
    'selected="selected"';
      }
         echo 
    '>';
       echo 
    $jahr_value;
       echo 
    '</option>';
      

    HTML Code:
    </select>
    bleibt beim reload nicht beim ausgewählten, sondern beim aktuellen.

    teste ich dies beim auswahl tag:
    HTML Code:
    <select name="anfang-tage" size="1">
    PHP Code:
    $tage = array('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','22','23','24','25','26','27','28','29','30','31');
    $aktueller_tag date("d");
      foreach(
    $tage as $tage_value)
      {
        echo 
    '<option value="'.$tage_value.'"';
        if( isset(
    $_POST['anfang-tage'])  && $_POST['anfang-tage'] == $tage_value)
      {
            echo 
    'selected="selected"';
        }
        else if(
    $aktueller_tag == $tage_value)
      {
      echo 
    'selected="selected"';
      }
         echo 
    '>';
       echo 
    $tage_value;
       echo 
    '</option>';

    HTML Code:
    </select>
    wird beim reload, der ausgewählte angezeigt!

    was ist daran so verschiedenen, das es bei der Tage Auswahl funktioniert und bei Jahre nicht?

    Comment


    • #17
      Du wirfst hier irgendwas durcheinander. Ich habe deinen Code mal mit dem FF 3 und IE 6/7/8 getestet. Beim FF bleiben nach einem Reload die ausgewählten Werte erhalten, da dieser Browser sich das merkt. Beim IE dagegen werden die vorselektierten Werte angezeigt. Oder was meinst du mit Reload? Ich verstehe darunter einen Neuaufruf der Seite z.B. mit F5.

      Petere
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Comment


      • #18
        ja, da hast stimmt, sorry. Nun, das Script ist in eine Suche eingebaut und nach dem klicken auf den Button, bleiben die Ausgewählten in den Auswahllisten Tag und Monat erhalten nur bei der Auswahlliste Jahr zeigt er wieder das aktuelle Jahr an. wie schon gezeigt, wurde das Script mit den Werten aus einer DB und aus einem Array getestet. mich wundert es immer nur dass dies Script bei den Auswahllisten Tag und Monat geht.

        Comment


        • #19
          Na dann solltest du mal kontrollieren, ob du per POST auch wirklich den Wert übergeben bekommst, den du annimmst.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Comment


          • #20
            Steht im HTML-Quelltext das was drin stehen soll oder nicht?

            Comment


            • #21
              @wahsaga,
              hab bei dem Script:

              PHP Code:
              echo $sql 
              eingebaut und die ausgewählten Zahlen kommen bei der DB korrekt an.

              Comment


              • #22
                Fein - und jetzt machst du bitte mal das, was ich vorgeschlagen habe ...

                Kontrolliere, ob die per POST übergebenen Werte denen entsprechen, die du erwartest - bspw. per var_dump($_POST) ganz am Anfang des Scriptes.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Comment


                • #23
                  insgesamt sind es 7 Auswahllisten.

                  var_dump ($_POST); gibt aus:
                  PHP Code:
                  array(8) {   ["kategorie"]=>   string(4"Fest"   
                  ["anfang-tage"]=>   string(2"01"   ["anfang-monate"]=>   string(2"01"
                  ["anfang-jahre"]=>   string(4"2010"   ["ende-tage"]=>   string(2"01" 
                  ["ende-monate"]=>   string(2"01"   ["ende-jahre"]=>   string(4"2010"
                  ["suchen"]=>   string(6"suchen" 
                  .

                  so wie ich dies sehe, stimmt dies überein?!?!?!

                  Comment


                  • #24
                    dies funktioniert nicht bei den Jahren, hier noch die Anfang und Ende Jahre:

                    HTML Code:
                    <select name="anfang-jahre" size="1">
                    PHP Code:
                    $jahr = array('2009','2010');
                    $aktuelles_jahr date("Y");
                      foreach(
                    $jahr as $jahr_value)
                      {
                        echo 
                    '<option value="'.$jahr_value.'"';
                        if( isset(
                    $_POST['anfang-jahre'])  && $_POST['anfang-jahre'] == $jahr_value)
                      {
                            echo 
                    'selected="selected"';
                        }
                        else if(
                    $aktuelles_jahr == $jahr_value)
                      {
                      echo 
                    'selected="selected"';
                      }
                         echo 
                    '>';
                       echo 
                    $jahr_value;
                       echo 
                    '</option>';
                      

                    HTML Code:
                    </select>
                    HTML Code:
                     <select name="ende-jahre" size="1">
                    PHP Code:
                    $jahre = array('2009','2010');
                    $aktuelles_jahr date("Y");
                      
                    //echo '<option>'.$day_m.'</option>';
                      
                    foreach($jahre as $jahre_value)
                      {
                        echo 
                    '<option value="'.$jahre_value.'"';
                        if( isset(
                    $_POST['ende-jahre'])  && $_POST['ende-jahre'] == $jahre_value)
                      {
                            echo 
                    'selected="selected"';
                        }
                        else if(
                    $aktuelles_jahr == $jahre_value)
                      {
                      echo 
                    'selected="selected"';
                      }
                         echo 
                    '>';
                       echo 
                    $jahre_value;
                       echo 
                    '</option>';
                      

                    HTML Code:
                    </select>

                    Comment


                    • #25
                      Originally posted by schischi View Post
                      dies funktioniert nicht bei den Jahren
                      Es „funktioniert” bei mir sehr wohl (wenn $_POST['anfang-jahre'] '2010' enthält), allerdings gibt es folgenden HTML-Code aus:

                      Code:
                      <option value="2010"selected="selected">2010</option>
                      Vielleicht wäre da ein Leerzeichen vor dem selected mal eine feine Sache.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Comment


                      • #26
                        danke wahsaga, hab die Leerzeile gemacht, sieht auf jeden Fall ordentlicher aus,

                        HTML Code:
                        <option value="2010" selected="selected">2010</option>
                        dennoch bleibt dies aus, dass wenn man z. b 2009 auswählt den button suchen drückt, das Jahr 2009 angezeigt bleibt, habs in Opera, IE und Safari getestet. Cache geleert. dies ist echt sonderbar

                        Comment


                        • #27
                          Online-Beispiel?
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Comment


                          • #28

                            der Link wurde gelöscht!

                            entschuldige mich bitte, für die Notice, bin leider gerade am beseitigen!

                            ist mir persönlich peinlich! kann man den Link danach löschen?
                            Last edited by schischi; 01-01-2010, 21:28.

                            Comment


                            • #29
                              Code:
                                  <select name="anfang-jahre" size="1">
                              <option value="2009" selected="selected">2009</option>
                              <option value="2010" selected="selected">2010</option>    
                              		</select>
                              Damit sollte ja wohl klar sein, wo das Problem liegt. (Btw., sowas solltest du doch selber sehen, wenn du in den Quellcode-Murks, den dein Script da raus haut, mal reinschaust.)

                              Und wenn man sich deine If-Abfragen noch mal genauer anschaut, dann wird auch der Fehler in der Logik schnell offensichtlich.
                              Wenn 2009 in POST steht, dann trifft die erste Abfrage zu, selected wird ausgegeben.
                              Im nächsten Schleifendurchlauf trifft die erste Abfrage nicht mehr zu, also kommt der else-if-Teil dran. Da 2010 das aktuelle Jahr ist, wird dann noch mal selected ausgegeben.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Comment


                              • #30
                                vielen Dank wahsaga für deine kostbare Zeit!
                                Also auf gut deutsch, ein Scheiss Script, man oh man, hoffe die Logik von PHP mal zu begreifen.
                                Dann werde ich mich und muss mich bemühen, dies zu können!
                                machs gut
                                schischi

                                Comment

                                Working...
                                X