Select Option = Selected ?!?!

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

  • Select Option = Selected ?!?!

    Hallo Leute,

    ich bin schon seit 1em Tag im Internet am suchen, habe ein riesiges Brett vorm Kopf! Endweder das was ich finde kapiere ich nicht, oder es ist so einfach das ich nicht darauf komme.... Vielleicht habt ihr ja eine Idee?

    Also, ich habe ein Anfragesystem mit Artikeln gebastelt. Ein User kann viele Artikel die in einer Liste angezeigt werden in den Warenkorb legen. Wenn dieser User jetzt in dem Warenkorb ist, wird Ihm unter Einheit ein Sprungmenü angezeigt, in dem er auswählen könnt: Pauschal, Std., Kilogramm, Packet, usw........

    Jetzt das eigendliche Problem: Wenn er in dem Sprungmenü eine bestimmte Option ausgewählt hat, und das Formular aktualisiert, erscheint immer der erste Eintrag (also Pauschal) und nicht Kilogramm.

    Hier ist ein Ausschnitt meines Quelltextes:

    PHP-Code:
    <?
    $str = $einheit;
    $alleeinheiten = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);

    foreach($alleeinheiten as $einheit1)

    echo "<option value=\"" . $einheit1[0] . "\"selected>" . $einheit1[0] . "\r";
    ?>
    Wäre echt cool wenn jemand eine Antwort darauf hat (vielleicht sogar eine Lösung)

    danke Malle

  • #2
    Re: Select Option = Selected ?!?!

    Wo ist denn da das Problem ...?
    Als ob das Thema nicht schon x-mal durchgekaut worden wäre.

    Vergleiche beim erzeugen der Options jeweils, ob eine Übereinstimmung mit dem beim Abschicken des Formulars übergebenen Wert besteht - wenn ja, gebe das selected-Attribut für die Option aus.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      vor der echo ausgabe:

      PHP-Code:
      unset ($opt_selected);
      if (
      $einheit1== $NAME_VOM_FORMULAR) {$opt_selected " selected";} 
      und anstatt deinem selected was ja logischerweise in JEDER option dann erscheint.... dann
      PHP-Code:
      echo $opt_selected

      Kommentar


      • #4
        sorry das ich nochmal störe, wurde ja 1000mal durchgekaut, aber es funktioniert nicht

        nun gibt mir das Sprungmenü immer die !! LETZTE !! option aus. also in diesem beispiel "Packet"

        ?

        PHP-Code:
        <?
        $str = $einheit;
        $alleeinheiten = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);

        unset ($opt_selected);
        if ($einheit1== $anfragekorb) {$opt_selected = " selected";}

        foreach($alleeinheiten as $einheit1)

        echo "<option value=\"" . $einheit1[0] . "\"$opt_selected>" . $einheit1[0] . "\r";
        ?>

        Kommentar


        • #5
          1. Strings sauber trennen " . $opt_selected . ">

          2. <option value="haumichblau" selected>anzeige</option>

          (in deinem Code fehlt der letzte Teil

          3. Poste oder schau dir mal die HTML Ausgabe an.

          Kommentar


          • #6
            und die if-abfrage in die schleife einbauen!

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

            Kommentar


            • #7
              OffTopic:
              @Malle: Da ichs dir ja schon so fertig vorgekaut hab, würd mich mal deine ehrliche antwort interessieren wie lange du versucht hast das problem SELBST / ALLEINE zu lösen? Also den Code mal Zeile für Zeile durchgegangen bist, um die funktionsweise zu verstanden.

              Kommentar


              • #8
                Möchte euch ja alle nicht mehr nerfen, aber ich weiß nicht wo mein denkfehler liegt?

                HTML Quelltext schaue ich mir ständig an (hier):
                Code:
                <select name="einheit" size="1">
                <option value="Kilogramm" selected>Kilogramm</option>
                <option value="Gramm" selected>Gramm</option>
                <option value="Korn" selected>Korn</option>
                </select>
                wie ihr seht, schreibt die Anwendung bei jedem option das selected hinein, deswegen nimmt er auch das letzte (also Korn)

                @Kropff
                Wenn ich die IF-Abfrage in die Schleife einbaue, dann bekomme ich in der Auswahl nur das letzte angezeigt (also Korn)

                Kilogramm und Gramm sind dann nicht mehr sichtbar und zur Auswahl steht nur noch "Korn"

                @Daniela
                1. Strings sauber trennen -> hab ich jetzt gemacht

                2. <option value="haumichblau" selected>anzeige</option> -> hab ich jetzt auch gemacht

                (in deinem Code fehlt der letzte Teil -> danke

                3. Poste oder schau dir mal die HTML Ausgabe an. -> seht ihr jetzt auch

                @alle
                hier jetzt der aktuelle PHP Quelltext:


                PHP-Code:
                <select name="einheit" size="1">
                <?php
                $str 
                $einheit;
                $alleeinheiten preg_split('/ /'$str, -1PREG_SPLIT_OFFSET_CAPTURE);

                unset (
                $opt_selected);
                if (
                $einheit1== $anfragekorb) {$opt_selected " selected";}

                foreach(
                $alleeinheiten as $einheit1)

                echo 
                "<option value=\"" $einheit1[0] . "\""$opt_selected .">" $einheit1[0] . "</option>\r";
                ?>
                </select>
                habt ihr dafür eine Antwort? ich weiß nicht weiter...

                Kommentar


                • #9
                  Wenn ich die IF-Abfrage in die Schleife einbaue, dann bekomme ich in der Auswahl nur das letzte angezeigt (also Korn)
                  natürlich wird nur das letzte angezeigt, die if-abfrage muss natürlich auch noch angepaßt werden, aber das machst du mal schön selber.

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

                  Kommentar


                  • #10
                    Original geschrieben von Malle
                    Wenn ich die IF-Abfrage in die Schleife einbaue, dann bekomme ich in der Auswahl nur das letzte angezeigt (also Korn)
                    Du sollst natürlich nicht die Ausgabe der Options vom IF abhängig machen, sondern nur, einzig und allein, die eventuelle Ausgabe des selected-Attributes.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Wenn dein Feld so heißt:
                      <select name="einheit" size="1">
                      warum überprüfst du dann auf
                      if ($einheit1== $anfragekorb)

                      An welche Stelle die IF abfrage rein muss um jeden wert kurz vor der echo ausgabe zu überprüfen, das ist die hausaufgabe.... mehr tips gibts heute nicht mehr

                      Kommentar


                      • #12


                        ihr seid alle echt super .... Hausaufgaben .... sitze hier und kapiere die Welt nicht mehr... und ihr kommt mir mit Hausaufgaben....

                        Ich hab da mal ne Idee so vor ein paar Minuten gehabt, die werde ich mal ausprobieren.

                        @Daniela
                        für mich liegt das eigendliche Problem darin, dass ich nicht weiß was ich vergleichen soll??? um auf die Antwort zu kommen....

                        für diejenigen die nicht genug bekommen:
                        funktioniert aber nicht....
                        PHP-Code:
                        <select name="einheit" size="1">
                        <?php
                        $str 
                        $einheit;
                        $alleeinheiten preg_split('/ /'$str, -1PREG_SPLIT_OFFSET_CAPTURE);
                        $opt_selected " selected";

                        foreach(
                        $alleeinheiten as $einheit1)
                        {
                        unset (
                        $opt_selected);

                        if (
                        $einheit1 == $einheit)
                           echo 
                        "$opt_selected";
                        else
                           echo 
                        "";
                        }
                        echo 
                        "<option value=\"" $einheit1[0] . "\""$opt_selected .">" $einheit1[0] . "</option>\r";
                        ?>
                        @alle
                        schönen Feierabend noch (und bis morgen)
                        Zuletzt geändert von Malle; 11.04.2006, 14:55.

                        Kommentar


                        • #13
                          geholfen haben wir dir zur genüge, aber niemand schreibt dir deinen code, wenn du nicht mal über das notwendige grundlagenwissen verfügst.

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

                          Kommentar


                          • #14
                            ich weiß einfach nicht was bei der if-Abfrage rein muss, hab schon alles einmal ausprobiert... Welchen Vergleich muss die Schleife machen?

                            PHP-Code:
                            <select name="einheit" size="1">
                            <?php
                            $str 
                            $einheit;
                            $alleeinheiten preg_split('/ /'$str, -1PREG_SPLIT_OFFSET_CAPTURE);
                            $opt_selected " selected";

                            foreach(
                            $alleeinheiten as $einheit1)
                            {
                            unset (
                            $opt_selected);

                            if (
                            $einheit1[0] == einheit)
                               echo
                            "<option value=\"" $einheit1[0] . "\"" $opt_selected .">" $einheit1[0] . "</option>\r";
                            else
                               echo
                            "<option value=\"" $einheit1[0] . "\">" $einheit1[0] . "</option>\r";
                            }
                            ?>
                            </select>
                            bei mir ist es so, dass die schleife bei jeder auswahl in die "else" schleife geht.
                            Zuletzt geändert von Malle; 11.04.2006, 19:01.

                            Kommentar


                            • #15
                              hab gerade gesehen, dass ich nicht der einzige bin, der hier im Forum so fertig gemacht wird

                              augenzwinker @wahsaga

                              hier klicken

                              Kommentar

                              Lädt...
                              X