DrBroiler: Formular mit Select

Ich habe eine Frage..

Wenn ich ein Formular mit Texteingabefeld erstelle, dann kann ich einen Wert vorwählen um den Wert den der Benutzer eingegeben hat nach dem submit zu speichern. Das Sieht dann so aus..

<form action="<?$PHP_SELF?>" method="POST">
<input type="text" name="wert1" value="<?$_POST['wert1']?>" />
<input type="submit" value="abschicken" />
</form>

wenn ich das jetzt aber mit einer Auswahlliste machen möchte? Wie geht das?
hier steht nur dass man
<form action="<?$PHP_SELF?>" method="POST">
<select name="wert1">
<option selected="selected">01</option>
<input type="submit" value="abschicken" />
</form>

eingeben könnte.. aber damit selektiere ich ja BEVOR der Benutzer etwas eingibt etwas vor..

habt ihr die Lösung?

Danke :D

  1. echo $begrüßung;

    hier steht nur dass man
    <option selected="selected">01</option>
    eingeben könnte.. aber damit selektiere ich ja BEVOR der Benutzer etwas eingibt etwas vor..

    Ja, im Prinzip genauso wie beim value-Attribut eines Texteingabefeldes. Und das was der Benutzer letzlich gewählt hat überträgt der Browser zum Server.

    habt ihr die Lösung?

    Für welches Problem genau?

    echo "$verabschiedung $name";

    1. also <option selected="<?$_POST['wert1']?>wert</option>

      ??

      aber an welcher stelle trage ich das selected ein?? Bei allen Options?
      ich bin der meinung selected kennt nur true oder false?!

      also müsste man den Wert von option mit dem eingabewert des benutzers vergleichen und wenn es stimmt die option selecten ;-)

      könnte es so gehen?

      1. echo $begrüßung;

        also <option selected="<?$_POST['wert1']?>wert</option>
        aber an welcher stelle trage ich das selected ein?? Bei allen Options?

        Bei all den Optionen, die vorselektiert sein sollen. Wobei mehr als eine ist nur bei Multi-Selects (<select multiple="multiple">) sinnvoll.

        ich bin der meinung selected kennt nur true oder false?!

        selected kennt nur vorhanden oder nicht, beziehungsweise XHTML-Konform: selected="selected"

        also müsste man den Wert von option mit dem eingabewert des benutzers vergleichen und wenn es stimmt die option selecten ;-)
        könnte es so gehen?

        Ja.

        echo "$verabschiedung $name";

        1. Aber ich will ja nicht vorselektieren :(

          sondern dynamisch speichern was der benutzer eingegeben hat :S

          kannst du nicht nen kurzen Beispielsquelltext schreiben wie du das meinst?

          1. echo $begrüßung;

            Aber ich will ja nicht vorselektieren :(

            Na, dann lass das selected weg.

            sondern dynamisch speichern was der benutzer eingegeben hat :S

            Das Wort "dynamisch" solltest du streichen, das sagt alles und nichts aus. Wann soll wo, was gespeichert werden?

            kannst du nicht nen kurzen Beispielsquelltext schreiben wie du das meinst?

            Für welches Problem genau?

            echo "$verabschiedung $name";

            1. Ich glaub wir reden hier echt aneinander vorbei..

              Also ich habe eine Auswahlliste. Der Benutzer wählt etwas aus und schickt es ab. Und nach dem Abschicken soll der Wert im Auswahlfeld erhalten bleiben.

              1. Hi!

                Also ich habe eine Auswahlliste. Der Benutzer wählt etwas aus und schickt es ab. Und nach dem Abschicken soll der Wert im Auswahlfeld erhalten bleiben.

                Du moechtest also das Formular abschicken und wieder so anzeigen, wie es abgeschickt wurde. Also moechtest Du DOCH vorselektieren. Und zwar den Wert der uebergeben wurde. Wo genau ist da nun das Problem?

                --
                "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                      - T. Pratchett
                1. das Problem ist das ich wissen möchte wie dann der Quelltext aussieht..

                  hier ist mein Quelltext
                  <form action="<?$PHP_SELF?>" method="POST">
                  <select name="wert1">
                  <option>01</option>
                  <option>02</option>
                  <option>03</option>
                  <option>04</option>
                  <option>04</option>
                  <input type="submit" value="abschicken" />
                  </form>

                  wo kommt das Vergleichbare zu value="$_POST['wert1'] hin? und wie sieht es dann aus?

                  1. das Problem ist das ich wissen möchte wie dann der Quelltext aussieht..

                    hier ist mein Quelltext
                    <form action="<?$PHP_SELF?>" method="POST">
                    <select name="wert1">
                    <option>01</option>
                    <option>02</option>
                    <option>03</option>
                    <option>04</option>
                    <option>04</option>
                    <input type="submit" value="abschicken" />
                    </form>

                    wo kommt das Vergleichbare zu value="$_POST['wert1'] hin? und wie sieht es dann aus?

                    da fehlt jetzt die Einleitung zu php..

                    also
                    value="<?$_POST['wert1']?>" meinte ich

                    1. Hallo

                      »» hier ist mein Quelltext
                      »» <form action="<?$PHP_SELF?>" method="POST">
                      »» <select name="wert1">
                      »» <option>01</option>
                      »» <option>02</option>
                      »» <option>03</option>
                      »» <option>04</option>
                      »» <option>04</option>
                      »» <input type="submit" value="abschicken" />
                      »» </form>
                      »»
                      »» wo kommt das Vergleichbare zu value="$_POST['wert1'] hin? und wie sieht es dann aus?

                      da fehlt jetzt die Einleitung zu php..

                      value="<?$_POST['wert1']?>" meinte ich

                      Wenn du ein Value willst, musst du den auch eintragen. mache dir klar, dass du mit PHP an der Stelle nichts anderes machst, als HTML-Quelltext zu erzeugen. Der Quelltext muss hernach also so aussehen:

                      <option value="01">01</option> für ein nicht selektiertes Feld
                      [code lang=html]<option value="01" selected>01</option> für ein selektiertes Feld in HTML
                      [code lang=html]<option value="01" selected="selected">01</option> für ein selektiertes Feld in XHTML

                      Und ja, wie du bereits erkannt hast, musst du den übergebenen Wert, so er vorhanden ist, gegen alle möglichen Werte prüfen, um herauszufinden, wo 'selected' bzw. 'selected="selected"' hinkommt.

                      Tschö, Auge

                      --
                      Die deutschen Interessen werden am Liechtenstein verteidigt.
                      Veranstaltungsdatenbank Vdb 0.2
                      1. Schade.. ich dachte es gibt vielleicht doch etwas einfacheres.. :(

                        na mal schauen ob der Aufwand lohnt

                        trotzdem danke

                        1. Hallo

                          Schade.. ich dachte es gibt vielleicht doch etwas einfacheres.. :(

                          Verstehe ich nicht. Einfacher als was? Es sollte doch wohl kein Problem sein, alle möglichen Options in einer Schleife in den HTML-Quelltext einzubauen und bei der Gelegenheit die Prüfung gegen $_POST["irgendwas"] vorzunehmen und bei Erfolg der Prüfung dem HTML-Quelltext ein "selected" hinzuzufügen.

                          Tschö, Auge

                          --
                          Die deutschen Interessen werden am Liechtenstein verteidigt.
                          Veranstaltungsdatenbank Vdb 0.2
                          1. ist mir zuviel Aufwand..

                            ich lass dann einfach das ausgewählte als Text ausgeben.. denn sonst müsste ich das hier überall einbauen :S

                            Aber danke euch für die Hilfe!

                            <table>
                              <form action="<?$PHP_SELF?>" method="POST">
                              <tr><td><p>Ankunftszeit Stunde: </p></td><td><select name="startstd" value="<?$_POST['startstd'];?>">>
                              <option>00</option>
                              <option>01</option>
                              <option>03</option>
                              <option>04</option>
                              <option>05</option>
                              <option>06</option>
                              <option>07</option>
                              <option>08</option>
                              <option>09</option>
                              <option>10</option>
                              <option>11</option>
                              <option>12</option>
                              <option>13</option>
                              <option>14</option>
                              <option>15</option>
                              <option>16</option>
                              <option>17</option>
                              <option>18</option>
                              <option>19</option>
                              <option>20</option>
                              <option>21</option>
                              <option>22</option>
                              <option>23</option>
                              <option>24</option>
                              </select></td></tr>

                            <tr><td><p>Ankunftszeit Minute: </p></td><td><select name="startmin" value="10<?/*$_POST['startmin'];*/?>">
                              <option>00</option>
                              <option>05</option>
                              <option>10</option>
                              <option>15</option>
                              <option>20</option>
                              <option>25</option>
                              <option>30</option>
                              <option>35</option>
                              <option>40</option>
                              <option>45</option>
                              <option>50</option>
                              <option>55</option>
                              <option>60</option>
                              </select></td></tr>

                            <tr><td><p>Endzeit Stunde: </p></td><td><select name="endstd" value="<?$_POST['endstd'];?>">
                              <option>00</option>
                              <option>01</option>
                              <option>03</option>
                              <option>04</option>
                              <option>05</option>
                              <option>06</option>
                              <option>07</option>
                              <option>08</option>
                              <option>09</option>
                              <option>10</option>
                              <option>11</option>
                              <option>12</option>
                              <option>13</option>
                              <option>14</option>
                              <option>15</option>
                              <option>16</option>
                              <option>17</option>
                              <option>18</option>
                              <option>19</option>
                              <option>20</option>
                              <option>21</option>
                              <option>22</option>
                              <option>23</option>
                              <option>24</option>
                              </select></td></tr>

                            <tr><td><p>Endzeit Minute: </p></td><td><select name="endmin" value="<?$_POST['endmin'];?>">
                              <option>00</option>
                              <option>05</option>
                              <option>10</option>
                              <option>15</option>
                              <option>20</option>
                              <option>25</option>
                              <option>30</option>
                              <option>35</option>
                              <option>40</option>
                              <option>45</option>
                              <option>50</option>
                              <option>55</option>
                              <option>60</option>
                              </select></td></tr>

                            <tr><td><p>Pause in Minuten: </p></td><td><select name="pause" value="<?$_POST['pause'];?>">
                              <option>00</option>
                              <option>30</option>
                              <option>45</option>
                              <option>60</option>
                              <option>90</option>
                              </select></td></tr>
                              <tr><td align="center"><input type="submit" value="abschicken" /></td></tr>
                              </form>
                              </table>
                              <hr>

                            1. Ihr habt ja mein Skript hier..

                              Das ist natürlich nicht alles aber der Teil auf den es ankommt..

                              und wenn jemand sich ärgert dass er Mühe investiert hat und ich es nicht umsetze dann könnt ihr ja auch zuende bringen was ihr angefangen habt und in den Quelltext des Posts hiervor eure Lösung reinschreiben ;-)

                          2. Hi Auge,

                            bei Antworten des Fragenstellers wie "na mal schauen ob der Aufwand lohnt" und "ist mir zuviel Aufwand.." frage ich mich, ob sich dann eigentlich _mein_ Aufwand lohnt, eine Frage zu beantworten. Nochdazu, wo ich 30 Minuten meiner Zeit geopfert habe, um auch noch einen schönen Beispielcode zu schreiben und der Fragensteller nicht mal _versucht_, die Antworten umzusetzen. *grmpfl*

                            Ganz zu schweigen vom fehlenden persönlichen Feedback des Fragenstellers auf meine Antwort.

                            Mit lieben Grüßen aus Wien

                            Michi

                            --
                            Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                            Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                            It is nice to be important - but it is more important to be nice.
                            1. echo $begrüßung;

                              bei Antworten des Fragenstellers wie "na mal schauen ob der Aufwand lohnt" und "ist mir zuviel Aufwand.." frage ich mich, ob sich dann eigentlich _mein_ Aufwand lohnt, eine Frage zu beantworten. Nochdazu, wo ich 30 Minuten meiner Zeit geopfert habe, um auch noch einen schönen Beispielcode zu schreiben und der Fragensteller nicht mal _versucht_, die Antworten umzusetzen. *grmpfl*

                              Man kann das auch anders sehen. Der OP gibt nur eine Anregung. Die Zeit, die ich dem Lösungsfindungsversuch widme, kommt mir zu Gute, weil es meine Fähigkeiten schult. Die Recherche zum Thema vertieft mein Wissen um das Handbuch, so dass ich bei eigenen Problemen schneller die richtigen Stellen finde. Außerdem lerne ich dadurch nebenbei oder auch durch die Antworten anderer neue Dinge kennen und auch "Lösungen", die suboptimal sind. Diese Fehler muss ich dann nicht erst in eigener Sache ausprobieren, um daraus zu lernen. Wenn das Problem des OP gelöst wird, ist das quasi "nur ein Nebeneffekt". Außerdem ist es ja sein Problem, mit der von ihm letztlich eingesetzten Lösung muss er selbst zurechtkommen.

                              echo "$verabschiedung $name";

                              1. Oh wow..

                                also ich hätte nicht gedacht hier soviel Staub aufzuwirbeln..

                                Ihr zerreißt euch ja gegenseitig mit euren Lösungsvorschlägen :S

                                Ich finde es auch irgendwie erstaunlich bzw. schon fast erschreckend auf was für Freaks man hier trifft die sich mit echo $begrüßung begrüßen.. sorry aber das ist mir echt ne Nummer zu hoch, ich habe auch noch ein anderes Leben als den PC.. auch wenn ich in der Branche arbeite und php eher so nebenbei hobbymäßig mache

                                und ich möchte nicht wissen was meine Freundin sagt wenn ich ihr mit echo $kuss ankomme..

                                1. Hi xyz,

                                  und ich möchte nicht wissen was meine Freundin sagt wenn ich ihr mit echo $kuss ankomme..

                                  na hoffentlich mit

                                  if(kuss(xyz)==true)  
                                   {  
                                    echo"Schatz, Du kannst mit mir machen, _was_ Du willst!";  
                                   }  
                                  else  
                                   {  
                                    include("men_strip_service.php");  
                                   }
                                  

                                  Mit lieben Grüßen aus Wien

                                  Michi

                                  --
                                  Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                                  Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                                  It is nice to be important - but it is more important to be nice.
                                2. Hallo

                                  also ich hätte nicht gedacht hier soviel Staub aufzuwirbeln..

                                  Ihr zerreißt euch ja gegenseitig mit euren Lösungsvorschlägen :S

                                  ...

                                  Und um das zu sagen, musst du den Nickname wechseln?

                                  Tschö, Auge

                                  --
                                  Die deutschen Interessen werden am Liechtenstein verteidigt.
                                  Veranstaltungsdatenbank Vdb 0.2
                              2. Hi dedlfix,

                                ich hab das so nicht gesehen vorher, kann Dir aber schon folgen und Dir Recht geben. Allerdings:

                                ...vertieft mein Wissen um das Handbuch...

                                Mein Verhältnis zu ebendiesem kennst Du ja. =( *g*

                                Mit lieben Grüßen aus Wien

                                Michi

                                --
                                Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                                Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                                It is nice to be important - but it is more important to be nice.
                                1. Mahlzeit MichiN,

                                  »» ...vertieft mein Wissen um das Handbuch...

                                  Mein Verhältnis zu ebendiesem kennst Du ja. =( *g*

                                  Ohne Dir jetzt zu Nahe treten zu wollen ... aber wenn Du - in welchem Bereich auch immer - irgendwie irgendetwas erreichen willst, wirst Du auf Dauer nicht umhin kommen, Dich mit entsprechender Fachliteratur, Dokumentationen und ggf. Handbüchern beschäftigen zu müssen ... Du wirst nicht immer jemanden finden, der Dir grundlegende Dinge erklärt - und das wohlmöglich auch noch (wie hier) kostenfrei.

                                  In Deinem eigenen Interesse solltest Du also Deine Aversion gegen Handbücher und dergleichen Gezücht auf lange Sicht ablegen ... :-)

                                  MfG,
                                  EKKi

                                  --
                                  sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                                  1. Hi EKKi,

                                    zunächst mal: Ich studiere Medizin, bin auf dem Weg, Anästhesist und Notfallemdiziner zu werden und das Schreiben von Webauftritten mit xhtml, CSS und php ist _eines_ von _vielen_ meiner Hobbys.

                                    Ohne Dir jetzt zu Nahe treten zu wollen ... aber wenn Du - in welchem Bereich auch immer - irgendwie irgendetwas erreichen willst, wirst Du auf Dauer nicht umhin kommen, Dich mit entsprechender Fachliteratur, Dokumentationen und ggf. Handbüchern beschäftigen zu müssen

                                    Ja, wenn es _mein_ Fach ist, dann werd ich auch verstehen, worum es geht. So, wie das php-Manual dem lieben dedlfix (als Experte) eine Hilfe und Erklärung ist, weil er einfach versteht, was dort steht. Wie ich es schon mehrmals betont habe, ist das php-Manual für Laien, die technisch _nicht_ so versiert sind, aber nicht nur keine Hilfe, es ist nicht mal eine Erklärung.

                                    Alles, was ich über und von PHP weiß, habe ich hier aus dem Forum, von Tutorials oder von wo auch immer - aber ganz sicher _nicht_ aus dem PHP-Manual. Das ist kein Vorwurf. Ein Manual ist ein Manual und auch kein Lehrbuch. Was ich sagen will: Nur ist es deshalb keine sonderliche Hilfe, einem Fragenden hier als Antwort den Link zum Manual hinzuknallen. Selbst dem wissbegierigsten und bemühtesten Fragesteller wird das in vielen Fällen absolut _null_ Hilfe sein. Das ist einfach mal so. Auch, wenn es viele Technik-Sprech-Menschen einfach nicht wahrhaben können oder wollen. Das meine ich gar nicht negativ. Aber ab einem gewissen Level kann man oft gar nicht mehr sehen und einschätzen, wie "dumme" Beginner etwas sehen und verstehen, weil man gewisse eigene Fähigkeiten und eigenes Verständnis auf andere projeziert. (Zu dieser Aussage meinte letztens sinngemäß sogar ChrisB, dass dies sicher stimmt und er sich selbst manchmal dabei erwischt, so zu sein.)

                                    ... Du wirst nicht immer jemanden finden, der Dir grundlegende Dinge erklärt - und das wohlmöglich auch noch (wie hier) kostenfrei.

                                    Das ändert nichts an dem, was ich gerade ausgeführt habe.

                                    In Deinem eigenen Interesse solltest Du also Deine Aversion gegen Handbücher und dergleichen Gezücht auf lange Sicht ablegen ... :-)

                                    Also für das, was _ich_ mache oder brauche, das PHP Manual zu erlernen oder zu lernen, damit umzugehen (auch _das_ erfordert schon _VIEL_ Wissen) ... das wäre, als ob Du gerade ein Kreuzworträtsel löst, mich dabei fragst, wie das Brustbein auf Latein heißt und ich Dir als Antwort sage, da mußt Du schon den Platzer befragen.

                                    Im übrigen wollte ich hier keine Grundsatzdiskussion vom Zaun brechen. Ich war hier bis vor kurzem mit einem anderem (nicht registrierten) Namen und dedlfix hat mir bei den  Themen 'mysqli' und 'Mailheader nicht in utf-8 senden' _sehr_ geholfen und _viel_ durchgemacht mit mir. So wie ChrisB. Und _in Anspielung auf die damalige Diskussion_ übers Manual und ob dies für Anfänger eine Hilfe ist oder nicht, habe ich das _an dedlfix_ geschrieben.

                                    Aber das konntest Du natürlich nicht wissen. =)

                                    Mit lieben Grüßen aus Wien

                                    Michi

                                    --
                                    Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                                    Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                                    It is nice to be important - but it is more important to be nice.
                                    1. Hallo

                                      Ja, wenn es _mein_ Fach ist, dann werd ich auch verstehen, worum es geht. So, wie das php-Manual dem lieben dedlfix (als Experte) eine Hilfe und Erklärung ist, weil er einfach versteht, was dort steht. Wie ich es schon mehrmals betont habe, ist das php-Manual für Laien, die technisch _nicht_ so versiert sind, aber nicht nur keine Hilfe, es ist nicht mal eine Erklärung.

                                      Nun ja, für Anfänger ist es nicht einfach, z.B. wenn die Fachbegriffe fehlen, aber mMn gehört das PHP-Manual zu den besseren Quellen, da es recht ausführlich ist. Zu jeder Funktion wird geschrieben, was sie macht, welche Parameter sie (evtl. auch optional) erwartet und was die möglichen Rückgabewerte sind.

                                      Dass viele hier (bestenfalls) nach einer kurzen Erklärung diese mit dem Link zur Doku beenden liegt wohl daran, dass sie selbst mit selbiger keine Probleme haben und davon ausgehen, dass das auch für den Gegenüber gilt. Da das aber nicht immer der Fall ist, endet das schon mal in gegenseitigem Unverständnis.

                                      Tschö, Auge

                                      --
                                      Die deutschen Interessen werden am Liechtenstein verteidigt.
                                      Veranstaltungsdatenbank Vdb 0.2
                                      1. Hi Auge,

                                        Dass viele hier (bestenfalls) nach einer kurzen Erklärung diese mit dem Link zur Doku beenden liegt wohl daran, dass sie selbst mit selbiger keine Probleme haben und davon ausgehen, dass das auch für den Gegenüber gilt. Da das aber nicht immer der Fall ist, endet das schon mal in gegenseitigem Unverständnis.

                                        Ja genau, das ist _exakt_ das, was ich gemeint habe.

                                        Wobei ich nochmals betonen möchte, dass ich jetzt keine Grundsatzdiskussion vom Zaun brechen wollte. Es war nur sowas wie mein augenzwinkerndes "Gute Nacht" an dedlfix, weil ich jetzt weg bin hier. *g*

                                        Mit lieben Grüßen aus Wien

                                        Michi

                                        --
                                        Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                                        Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                                        It is nice to be important - but it is more important to be nice.
                          3. hehe.. ja wenn ich das jetzt so lese dann wird mir erstmal klar von was ihr überhaupt redet *gg*

                            klar!! Ich kann ja mit ner Schleife die Options als HTML Quelltext generieren lassen :D

                            auf die Idee bin ich noch gar nicht gekommen :P

                            sorry aber ich bin noch nicht sonderlich php erfahren ;-)

                            DANKE für die Erkenntnis!!

                  2. das Problem ist das ich wissen möchte wie dann der Quelltext aussieht..

                    hier ist mein Quelltext
                    <form action="<?$PHP_SELF?>" method="POST">
                    <select name="wert1">
                    <option>01</option>
                    <option>02</option>
                    <option>03</option>
                    <option>04</option>
                    <option>04</option>
                    <input type="submit" value="abschicken" />
                    </form>

                    wo kommt das Vergleichbare zu value="$_POST['wert1'] hin? und wie sieht es dann aus?

                    So, wie du das dort schreibst gehts nicht, weil PHP erstmal keinen Schimmer hat, welche Option (Optionvalue) mit dem uebergebenem Wert uebereinstimmt. Es kennt ja keinen der Werte, weil es einfach in etwas Text, der aussieht wie HTML, eingebettet ist.

                    Ansonsten musst Du natuerlich den Wert, den die Option uebergeben soll mit dem uebergebenem Wert vergleichen und bei Uebereinstimmung ein 'selected' setzten. Wo genau ist da das Problem? Ich sehe spontan keines.

                    --
                    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                          - T. Pratchett
                  3. echo $begrüßung;

                    das Problem ist das ich wissen möchte wie dann der Quelltext aussieht..
                    wo kommt das Vergleichbare zu value="$_POST['wert1'] hin? und wie sieht es dann aus?

                    Ein value steht immer da und ist abhängig von der jeweiligen Option, denn das ist der Wert, den du speichern willst. Es ist also ein unveränderlicher Wert. value kann auch wegbleiben, wenn der Anzeigewert gleich dem zu verarbeitenden ist. Du musst nun für jedes Option den Wert (Anzeigewert oder value-Attribut) mit der Nutzereingabe $_POST['wert1'] vergleichen und selected setzen oder nicht.

                    echo "$verabschiedung $name";

          2. Hi Drbroiler,

            kannst du nicht nen kurzen Beispielsquelltext schreiben?

            Verstehe ich Dich richtig? Du möchtest ein Formular ein 2. mal ausgeben und all das, was der User bei der Erstausgabe eingegeben und angeklickt hat, soll jetzt automatisch wieder so eingetragen und angeklickt sein. Und Dein Problem ist, dass Du nicht weißt, wie Du bei Auswahllisten den vorher vom User ausgewählten Wert vorselektierst.

            Dann frag _pro Auswahlmöglichkeit_ ganz normal ab, ob das Hakerl gemacht worden ist.

            Angenommen, Dein Auswahlfeld bei der Erstausgabe sieht so aus:

              
            <select name="top5" size="3">  
             <option>Heino</option>  
             <option>Michael Jackson</option>  
             <option>Tom Waits</option>  
             <option>Nina Hagen</option>  
             <option>Marianne Rosenberg</option>  
            </select>
            

            Dann fragst Du bei der zweiten Ausgabe ganz normal die Usereingabe ab und gibst die Auswahlliste beim 2. mal vorselektiert aus. Wichtig dabei ist, dabei auch abzufragen, ob _überhaupt_ etwas ausgewählt worden ist. Wenn Du das komplette Error-Reporting eingeschaltet hast, wird dieses nämlich sonst aktiv.

            if((isset($_POST['top5']))AND($_POST['top5']=="Heino"))  
             {  
              echo"<option selected>Heino<option>\n";  
             }  
            else  
             {  
              echo"<option>Heino</option>\n";  
             }  
            if((isset($_POST['top5']))AND($_POST['top5']=="Michael Jackson"))  
             {  
              echo"<option selected>Michael Jackson<option>\n";  
             }  
            else  
             {  
              echo"<option>Michael Jackson</option>\n";  
             }
            

            und so weiter...

            Mit lieben Grüßen aus Wien

            Michi

            --
            Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
            Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            It is nice to be important - but it is more important to be nice.
            1. Hi!

              if((isset($_POST['top5']))AND($_POST['top5']=="Heino"))

              {
                echo"<option selected>Heino<option>\n";
              }
              else
              {
                echo"<option>Heino</option>\n";
              }
              if((isset($_POST['top5']))AND($_POST['top5']=="Michael Jackson"))
              {
                echo"<option selected>Michael Jackson<option>\n";
              }
              else
              {
                echo"<option>Michael Jackson</option>\n";
              }

                
              So hartkodierte Werte sind aber nicht besonders guenstig. Morgen kommt naemlich Dein Chef und moechte gern 20 neue Optionen, von denen er naechste woche 10 entfernt und 17 andere dazugefuegt bekommen will.  
                
              Dann doch bitte ein Array von Werten (entweder als Array hartkodiert oder aus ner Datenquelle generiert) benutzen und in einer Schleife darueber gehen.  
                
              
              -- 
              "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."  
                    - T. Pratchett
              
              1. Hi Steel,

                Dann doch bitte ein Array von Werten (entweder als Array hartkodiert oder aus ner Datenquelle generiert) benutzen und in einer Schleife darueber gehen.

                und wie würde der optimalere Code bei Dir dann aussehen?

                Mit lieben Grüßen aus Wien

                Michi

                --
                Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                It is nice to be important - but it is more important to be nice.
                1. Hallo

                  »» Dann doch bitte ein Array von Werten (entweder als Array hartkodiert oder aus ner Datenquelle generiert) benutzen und in einer Schleife darueber gehen.

                  und wie würde der optimalere Code bei Dir dann aussehen?

                  foreach ($array as $bla) {  
                  echo "<option value='$bla'";  
                  if ($_POST["irgendwas"]==$bla) {  
                  echo " selected";  
                  }  
                  echo ">$bla</option>";  
                  }
                  

                  Wo ist das Problem?

                  Tschö, Auge

                  --
                  Die deutschen Interessen werden am Liechtenstein verteidigt.
                  Veranstaltungsdatenbank Vdb 0.2
                  1. Moin

                    Hallo

                    | »» Dann doch bitte ein Array von Werten (entweder als Array hartkodiert oder aus ner Datenquelle generiert) benutzen und in einer Schleife darueber gehen.
                    |
                    | und wie würde der optimalere Code bei Dir dann aussehen?

                    foreach ($array as $bla) {

                    echo "<option value='$bla'";
                    if ($_POST["irgendwas"]==$bla) {
                    echo " selected";
                    }
                    echo ">$bla</option>";
                    }

                      
                    noch kürzer:  
                    ~~~php
                    foreach ($array as $bla) {  
                    echo "<option value='$bla'".(($_POST["irgendwas"]==$bla)?" selected='selected'":"").">$bla</option>";  
                    }
                    

                    Gruß Bobby

                    --
                    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
                    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
                    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
                    1. Mahlzeit Bobby,

                      noch kürzer:

                      foreach ($array as $bla) {

                      echo "<option value='$bla'".(($_POST["irgendwas"]==$bla)?" selected='selected'":"").">$bla</option>";
                      }

                        
                      Noch übersichtlicher (und richtiger):  
                        
                      ~~~php
                      foreach ($array as $bla) {  
                        printf('<option value="%s"%s>%s</option>', htmlspecialchars($bla), (($_POST['irgendwas'] == $bla) ? ' selected="selected"' : ''), htmlspecialchars($bla));  
                      }
                      

                      MfG,
                      EKKi

                      --
                      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                      1. Hallo

                        »» noch kürzer:
                        »» ~~~php

                        foreach ($array as $bla) {

                        »» echo "<option value='$bla'".(($_POST["irgendwas"]==$bla)?" selected='selected'":"").">$bla</option>";
                        »» }

                        
                        >   
                        > Noch übersichtlicher (und richtiger):  
                        >   
                        > ~~~php
                        
                        foreach ($array as $bla) {  
                        
                        >   printf('<option value="%s"%s>%s</option>', htmlspecialchars($bla), (($_POST['irgendwas'] == $bla) ? ' selected="selected"' : ''), htmlspecialchars($bla));  
                        > }
                        
                        

                        Über Übersichtlichkeit kann man streiten (ich persönlich mag die printf-Schreibweise nicht so sehr).

                        Aber sei's drum, wenn das so weiter geht, stellen wir noch den Wettbewerb um den kürzesten Quelltext in irgendeiner Programmiersprache zu Lösung eines Sudokus in den Schatten. Leider finde ich die dazugehörige Seite nicht mehr :-(

                        Tschö, Auge

                        --
                        Die deutschen Interessen werden am Liechtenstein verteidigt.
                        Veranstaltungsdatenbank Vdb 0.2
                      2. Hi Ekki,

                        value="%s"%s>%s</option>

                        dieser Teil Deiens Codes ist mir unklar. Was bedeutet/bewirkt diese Prozentzeichendingsbumsangabe?

                        Mit lieben Grüßen aus Wien

                        Michi

                        --
                        Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                        Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                        It is nice to be important - but it is more important to be nice.
                        1. Hallo

                          Hi Ekki,

                          »» value="%s"%s>%s</option>

                          dieser Teil Deiens Codes ist mir unklar. Was bedeutet/bewirkt diese Prozentzeichendingsbumsangabe?

                          printf('<option value="%s"%s>%s</option>',  
                          htmlspecialchars($bla),  
                          (($_POST['irgendwas'] == $bla) ? ' selected="selected"' : ''),  
                          htmlspecialchars($bla));
                          

                          Sie setzen die drei "zweiten" Funktionsargumente in den HTML-Quelltext.
                          Siehe: PHP-Manual: printf

                          Tschö, Auge

                          --
                          Die deutschen Interessen werden am Liechtenstein verteidigt.
                          Veranstaltungsdatenbank Vdb 0.2
                          1. Hi Auge,

                            leider bin ich des Technik-Sprechs nicht mächtig. Das Handbuch ist mein Feind. Nicht, weil ich nicht will, sondern weil ich mit der Art und Weise, wie dort Funktionen und Zusammenhänge erklärt werden, einfach nicht zurechtkomme. =(

                            Sie setzen die drei "zweiten" Funktionsargumente in den HTML-Quelltext.

                            Was meinst Du jetzt zB mit 'die drei "zweiten" Funktionsargumente'?

                            Ich verstehe auch nicht wirklich, wo im Code welche Argumente wie in ein Array geschrieben werden bei Eurer Vorgehensweise.

                            Mit lieben Grüßen aus Wien

                            Michi

                            --
                            Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                            Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                            It is nice to be important - but it is more important to be nice.
                            1. Hallo

                              leider bin ich des Technik-Sprechs nicht mächtig. Das Handbuch ist mein Feind. Nicht, weil ich nicht will, sondern weil ich mit der Art und Weise, wie dort Funktionen und Zusammenhänge erklärt werden, einfach nicht zurechtkomme. =(

                              Das Codebeispiel angucken geht aber, oder? Das sollte eigentlich selbsterklärend sein.

                              »» Sie setzen die drei "zweiten" Funktionsargumente in den HTML-Quelltext.

                              Was meinst Du jetzt zB mit 'die drei "zweiten" Funktionsargumente'?

                              printf('<option value="%s"%s>%s</option>',  
                              htmlspecialchars($bla),  
                              (($_POST['irgendwas'] == $bla) ? ' selected="selected"' : ''),  
                              htmlspecialchars($bla));
                              

                              erstes Argument: der zu ändernde String (mit drei Platzhaltern '%s'):
                              '<option value="%s"%s>%s</option>'

                              zweites Argument (erstes "zweites"): der Code, der den ersten Platzhalter ersetzt:
                              htmlspecialchars($bla)

                              drittes Argument (zweites "zweites"): der Code, der den zweiten Platzhalter ersetzt:
                              (($_POST['irgendwas'] == $bla) ? ' selected="selected"' : '')
                              (entweder ' selected="selected"' oder '')

                              viertes Argument (drittes "zweites"): der Code, der den dritten Platzhalter ersetzt:
                              htmlspecialchars($bla)

                              Die Anzahl der Platzhalter '%s' im ersten Argument (eigentlich ja Parameter, ich bleibe jetzt aber mal bei der Bezeichnung) muss mit der Anzahl der folgenden Argumente, die diese Ersetzungen bereitstellen, übereinstimmen. Die Funktion printf erwartet also n Ersetzungsargumente nach dem ersten Argument, dass den String, in dem ersetzt werden soll, enthält, also 1+n Argumente.

                              Ich verstehe auch nicht wirklich, wo im Code welche Argumente wie in ein Array geschrieben werden bei Eurer Vorgehensweise.

                              ?

                              Tschö, Auge

                              --
                              Die deutschen Interessen werden am Liechtenstein verteidigt.
                              Veranstaltungsdatenbank Vdb 0.2
                            2. echo $begrüßung;

                              Ich verstehe auch nicht wirklich, wo im Code welche Argumente wie in ein Array geschrieben werden bei Eurer Vorgehensweise.

                              printf() (und seine Verwandten sprintf(), vprintf() und vsprintf()) nehmen als erstes Argument einen String mit Platzhaltern drin entgegegen. Diese zu notieren gibt es mehrere Möglichkeiten, die häufigste ist sicher %s für einen einzufügenden String. Für jedem Platzhalter gibst du einen weiteren Parameter an, der anstelle des Platzhalters eingefügt wird (oder bei v(s)printf() ein Array mit den Werten).

                              Diese Schreibweise sehe ich als übersichtlicher an, weil damit der String als ein Teil notiert werden kann und nicht ständig unterbrochen wird, um die andere Teile einzufügen.

                              » Sie setzen die drei "zweiten" Funktionsargumente in den HTML-Quelltext.
                              Was meinst Du jetzt zB mit 'die drei "zweiten" Funktionsargumente'?

                              Mit "zweiten" ist also die variable Anzahl (hier drei) an Parameteren nach dem Platzhalterstring gemeint.

                              echo "$verabschiedung $name";

                              1. Hi dedlfix,

                                »» Ich verstehe auch nicht wirklich, wo im Code welche Argumente wie in ein Array geschrieben werden bei Eurer Vorgehensweise.

                                diese Frage war so gemeint, dass es ja _ursprünglich_ um die Übernahme einer Auswahlliste aus einem Formular gegangen ist und bei einer erneuten Ausgabe des Formulars die zuvor ausgewählten Werte automatisch eingetragen werden.

                                Und dann kam EKKi mit dem

                                Noch übersichtlicher (und richtiger):
                                foreach ($array as $bla) {printf('<option value="%s"%s>%s</option>', htmlspecialchars($bla), »»(($_POST['irgendwas'] == $bla) ? ' selected="selected"' : ''), htmlspecialchars($bla));}

                                Ich hab angenommen, $array _ist_ auch ein Array und _deshalb_ gefragt, wo das plötzlich herkommt und wann wo welche Werte da reingekommen sind. (Was ich übrigens auch jetzt noch nicht weiß.)

                                Diese Schreibweise sehe ich als übersichtlicher an, weil damit der String als ein Teil notiert werden kann und nicht ständig unterbrochen wird, um die andere Teile einzufügen.

                                Mich erinnert das ein wenig an die 'Prepared Statements' bei der Arbeit mit 'mysqli'. Auch, wenn es natürlich was völlig anderes ist -  von der Logik/Systematik kann man das in etwa vergleichen, oder?

                                Mit lieben Grüßen aus Wien

                                Michi

                                --
                                Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                                Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                                It is nice to be important - but it is more important to be nice.
                                1. echo $begrüßung;

                                  » Noch übersichtlicher (und richtiger):
                                  » foreach ($array as $bla) {printf('<option value="%s"%s>%s</option>', htmlspecialchars($bla), »»(($_POST['irgendwas'] == $bla) ? ' selected="selected"' : ''), htmlspecialchars($bla));}
                                  Ich hab angenommen, $array _ist_ auch ein Array und _deshalb_ gefragt, wo das plötzlich herkommt und wann wo welche Werte da reingekommen sind. (Was ich übrigens auch jetzt noch nicht weiß.)

                                  Ja, $array ist ein Array, aber das ist ein anderes Thema als das printf(). printf() hast du ja nun vermutlich verstanden, das arbeitet mit Strings und bekommt auch nur solche übergeben. Das Array ist für das foreach gedacht, damit foreach da durchlaufen kann und für jedes Element des Arrays seinen Schleifenkörper (hier bestehend aus dem printf()) ausführen kann.

                                  Der Sinn des Arrays ist, statt den vielen Wiederholungen des option-Elements nur die Werte in einer Struktur (Array) abzulegen und PHP die Fleißarbeit zu überlassen. Dies hat, wie man hier schön sieht, den Vorteil, dass man bei Erweiterungen (selected oder nicht) den dafür nötigen Code nicht ebenfalls zigfach notieren muss sondern nur einmal im Schleifenkörper.

                                  » Diese Schreibweise sehe ich als übersichtlicher an, weil damit der String als ein Teil notiert werden kann und nicht ständig unterbrochen wird, um die andere Teile einzufügen.
                                  Mich erinnert das ein wenig an die 'Prepared Statements' bei der Arbeit mit 'mysqli'. Auch, wenn es natürlich was völlig anderes ist -  von der Logik/Systematik kann man das in etwa vergleichen, oder?

                                  Ja, auf den ersten Blick schon. Prepared Statements fügen aber im Gegensatz zu (s)printf() die Werte nicht in das SQL-Statement ein sondern transportieren sie extra zum Server. Auch der fügt die Werte nicht dort ein, denn dann müsste er ja das Statement immer wieder neu parsen und das will man ja durch die P.S. vermeiden. (Eigentlich sind sie ja für die wiederholte Ausführung eines Statements mit unterschiedlichen Werten vorgesehen.)

                                  echo "$verabschiedung $name";

                                2. Mahlzeit MichiN,

                                  Und dann kam EKKi mit dem

                                  »» foreach ($array as $bla) {printf('<option value="%s"%s>%s</option>', htmlspecialchars($bla), »»(($_POST['irgendwas'] == $bla) ? ' selected="selected"' : ''), htmlspecialchars($bla));}

                                  Nein. Das hatte Auge bereits vorher so formuliert.

                                  Ich hab angenommen, $array _ist_ auch ein Array und _deshalb_ gefragt, wo das plötzlich herkommt und wann wo welche Werte da reingekommen sind. (Was ich übrigens auch jetzt noch nicht weiß.)

                                  Es ist ein Beispiel-Array. Viele Leute bauen Auswahllisten mittels einer einfachen PHP-Funktion auf, die als "Datenquelle" einfache Arrays in der Form

                                  $array = array('foo', 'bar', 'baz');

                                  oder

                                  $array = array('eins' => 'foo', 'zwei' => 'bar');

                                  benötigen. So spart man sich die ständige Tipparbeit, wenn man - mal wieder - irgendwo eine Auswahlliste generieren muss.

                                  Ein derartiges Array kann man dann (z.B. in dieser Funktion) entsprechend durchlaufen, um die vom Benutzer ausgewählte Option bei der HTML-Ausgabe wieder vorausgewählt erscheinen zu lassen.

                                  Mich erinnert das ein wenig an die 'Prepared Statements' bei der Arbeit mit 'mysqli'. Auch, wenn es natürlich was völlig anderes ist -  von der Logik/Systematik kann man das in etwa vergleichen, oder?

                                  Eine gewisse Ähnlichkeit ist nicht von der Hand zu weisen.

                                  MfG,
                                  EKKi

                                  --
                                  sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                                  1. Hallo

                                    »» Und dann kam EKKi mit dem
                                    »»
                                    »» »» foreach ($array as $bla) {printf('<option value="%s"%s>%s</option>', htmlspecialchars($bla), »»(($_POST['irgendwas'] == $bla) ? ' selected="selected"' : ''), htmlspecialchars($bla));}

                                    Nein. Das hatte Auge bereits vorher so formuliert.

                                    Jup, jetzt verstehe ich auch die Frage nach $array. :-)

                                    »» Ich hab angenommen, $array _ist_ auch ein Array und _deshalb_ gefragt, wo das plötzlich herkommt und wann wo welche Werte da reingekommen sind. (Was ich übrigens auch jetzt noch nicht weiß.)

                                    Es ist ein Beispiel-Array.

                                    Richtig, es symbolisiert den Wertebereich, der im Beispiel *alle* möglichen Werte, die als <option> ausgegeben werden, umfasst.

                                    Viele Leute bauen Auswahllisten mittels einer einfachen PHP-Funktion auf, die als "Datenquelle" einfache Arrays [...] benötigen. So spart man sich die ständige Tipparbeit, wenn man - mal wieder - irgendwo eine Auswahlliste generieren muss.

                                    Ein derartiges Array kann man dann (z.B. in dieser Funktion) entsprechend durchlaufen, um die vom Benutzer ausgewählte Option bei der HTML-Ausgabe wieder vorausgewählt erscheinen zu lassen.

                                    Nicht nur das. Das Array dient (zumindest bei mir) auch dazu, zu prüfen, ob der vom Formular übergebene Wert des <select>s im gültigen Bereich liegt. Tut er dies (geprüft mit in_array() o.ä.), wird er übernommen, anderenfalls wird er verworfen.

                                    Gerade in solchen Fällen ist ein Array also sehr vorteilhaft, da das gleiche Array mehreren (anverwandten) Zwecken dienen kann.

                                    Tschö, Auge

                                    --
                                    Die deutschen Interessen werden am Liechtenstein verteidigt.
                                    Veranstaltungsdatenbank Vdb 0.2
                                  2. Hi EKKi,

                                    danke Dir für die weiterführenede Erklärung!

                                    Mit lieben Grüßen aus Wien

                                    Michi

                                    --
                                    Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
                                    Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                                    It is nice to be important - but it is more important to be nice.
                        2. Moin

                          | value="%s"%s>%s</option>

                          dieser Teil Deiens Codes ist mir unklar. Was bedeutet/bewirkt diese Prozentzeichendingsbumsangabe?

                          Schau dazu bitte ins Handbuch

                          Gruß Bobby

                          --
                          -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
                          -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
                          ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)