wie schleifen machen?
ronny
- php
hallo, ich habe eine liste mit geburtsjahren
<select name="select">
<option<?PHP echo $jahrcheck ; ?> 1933</option>
<option<?PHP echo $jahrcheck ; ?> 1934</option>
<option<?PHP echo $jahrcheck ; ?> 1935</option>
<option<?PHP echo $jahrcheck ; ?> 1936</option>
<option<?PHP echo $jahrcheck ; ?> 1937</option>
<option<?PHP echo $jahrcheck ; ?> 1938</option>
<option<?PHP echo $jahrcheck ; ?> 1939</option>
<option<?PHP echo $jahrcheck ; ?> 1940</option>
........
<option<?PHP echo $jahrcheck ; ?> 1990</option>
<option<?PHP echo $jahrcheck ; ?> 1991</option>
<option<?PHP echo $jahrcheck ; ?> 1992</option>
</select>
dann habe ich eine variable mit dem richtigen jahr
$jahr = 1991
und das wort selected
$jahrcheck = "selected ";
ich will es lösen, das nun das richtige jahr im formular gleich selected ist.
der code dafür würde dann quasi so aussehen
<option <?PHP echo $jahrcheck1 ; ?> 1991</option>
es geht mit if
if ($HTTP_SESSION_VARS[jahr] == "1991"):
$jahrcheck1 = "selected";
endif;
aber da müsst ich ewig viel code schreiben,außerdem müsste ich noch jahrcheck durchnummerieren, gibt es da nicht was besseres?
danke
ronny
wie kann ich nun eine schleife bauen, die prüft welches jahr die variable hat und dann eben genau im richtigen feld das selected reinsetzt?
hallo, ich habe eine liste mit geburtsjahren
<select name="select">
<option<?PHP echo $jahrcheck ; ?> 1933</option>
<option<?PHP echo $jahrcheck ; ?> 1934</option>
<option<?PHP echo $jahrcheck ; ?> 1935</option>
<option<?PHP echo $jahrcheck ; ?> 1936</option>
<option<?PHP echo $jahrcheck ; ?> 1937</option>
<option<?PHP echo $jahrcheck ; ?> 1938</option>
<option<?PHP echo $jahrcheck ; ?> 1939</option>
<option<?PHP echo $jahrcheck ; ?> 1940</option>
........
<option<?PHP echo $jahrcheck ; ?> 1990</option>
<option<?PHP echo $jahrcheck ; ?> 1991</option>
<option<?PHP echo $jahrcheck ; ?> 1992</option>
</select>dann habe ich eine variable mit dem richtigen jahr
$jahr = 1991
und das wort selected$jahrcheck = "selected ";
ich will es lösen, das nun das richtige jahr im formular gleich selected ist.
der code dafür würde dann quasi so aussehen
<option <?PHP echo $jahrcheck1 ; ?> 1991</option>
es geht mit if
if ($HTTP_SESSION_VARS[jahr] == "1991"):
$jahrcheck1 = "selected";
endif;aber da müsst ich ewig viel code schreiben,außerdem müsste ich noch jahrcheck durchnummerieren, gibt es da nicht was besseres?
danke
ronny
wie kann ich nun eine schleife bauen, die prüft welches jahr die variable hat und dann eben genau im richtigen feld das selected reinsetzt?
Das ist meine Meinung dazu.
Grüße,
Wolfram
hi wolfram,
<img src="/images/14.gif" border="0" alt="">
Das ist meine Meinung dazu.
lies dir mal die regeln hier im forum durch. da ist die rede von menschlichen umgang miteinander.
gruß
Ilja
Hello,
wieso? Ist dumm sein den unmenschlich?
Ist doch die höchste Form der Erkenntnis: Ich weiß, dass ich nichts weiß.
Das Schlimm ist, je mehr man weiß, desto bewusster wird einem dass.
Manche Fragen kann man nicht mehr beantworten, weil die Antwort so komplex wäre, dass der Andere einem nicht bis zur Hälfte zuhören würde und die einfache Antwort, die er erwartet, so falsch ist, dass einem vor seiner eigenen Lüge schaudern würde.
Ronny muss über das "Du bist wohl ein bisschen dumm?" also keinesfalls beleidigt sein. ER ist NUR ein BISSCHEN dumm. Der Poster des Pics aber über alle Maßen.
Grüße
Tom
hi,
wieso? Ist dumm sein den unmenschlich?
dumm sein und etwas nicht wissen sind in meinen augen zwei verschiedene dinge. wenn jemand etwas nicht weiß, impleziert das nicht automatisch, dass man auch dumm ist. insofern war das statement auch falsch.
zum anderen geht es nicht darum, wie dumm oder intelligent man ist oder was menschlich ist und was nicht. schließlich sind beleidigungen auch etwas menschliches und trotzdem sind sie hier nicht erwünscht. und der kommentar war in meinen augen erstens überflüßig und zweitens beleidigend.
Ist doch die höchste Form der Erkenntnis: Ich weiß, dass ich nichts weiß.
wenn du weißt, dass du nichts weißt, dann weißt du ja schon mal etwas, nämlich das du nichts weißt. und somit ist auch dieser schluß falsch.
Manche Fragen kann man nicht mehr beantworten, weil die Antwort so komplex wäre, dass der Andere einem nicht bis zur Hälfte zuhören würde und die einfache Antwort, die er erwartet, so falsch ist, dass einem vor seiner eigenen Lüge schaudern würde.
kann so sein, trotzdem kein grund für beleidigungen
Ronny muss über das "Du bist wohl ein bisschen dumm?" also keinesfalls beleidigt sein.
was er muss und was nicht ist nicht unsere sache, wenn du wissen willst, wie er es aufgefasst hat, frag ihn.
Ilja
Hello,
was er muss und was nicht ist nicht unsere sache, wenn du wissen willst, wie er es aufgefasst hat, frag ihn.
Deine Antwort entbehrt jeden Charms, dafür aber nicht einer gewissen proletarischen Agressivität. *wow*
Da kann man die Power des Absolutisten spüren - oder?
Grüße
Tom
hi Tom,
wenn du mich auf ein bier einlädst, können wir gerne über gott und die welt philosophieren. ansonsten sind wir uns beide einig, beleidungen habe hier im forum nichts zu suchen, egal wie man es drehen will
Ilja
Hello,
wenn du mich auf ein bier einlädst, können wir gerne über gott und die welt philosophieren. ansonsten sind wir uns beide einig,
Gute Idee, ich hol mir jetzt eins. Eigentlich müsste ich ja an meiner "Universalfunktion" weiterarbeiten. Aber die guten Ideen kann man eben nicht erzwingen.
Wenn Du rechtzeitig vorbei kommst, sind noch genügend Hefeweizen da *gg*
beleidungen habe hier im forum nichts zu suchen, egal wie man es drehen will
Dem kann ich nichts hinzufügen.
Grüße
Tom
ey was bist du für ein typ?
du leidest wohl an selbstüberschätzung, naja zum glück weißt du ALLES!!
gruß
ronny
Hallo Ronny,
ey was bist du für ein typ?
du leidest wohl an selbstüberschätzung, naja zum glück weißt du ALLES!!
Nö aber er liest ein Manual.
Und kauft sich ein Buch bevor er so etwas fragt.
TomIRL
hi,
Nö aber er liest ein Manual.
Und kauft sich ein Buch bevor er so etwas fragt.
mache ich, bzw. hab ein buch ( sogar recht dick ;) )
aber woher soll ein anfänger alle zusammenhänge und möglichkeiten des programmierens kennen ? glaub mir, die seiten mit schleifen und kotroll strukturen sind aufgeschlagen und liegen auf meinen schoß, aber so richtig kapiert hab ich es noch nicht.
aber trotzdem kann man anworten ohne vielleicht beleidigend zu werden. ich wette es gäbe dinge, da müsste er nachschlagen bzw würde sich die haare raufen weil er nicht drauf kommt, ich würde deswegen aber nicht solche grafiken verwenden ! !
na egal, sinnlose disk. es gibt nunmal leider gottes menschen die von 12 bis mittag denken wenn es umgangsformen geht..
ciao
ronny
Sieh mal lieber zu dass Du Deine Sache da verstehst.
Ist nämlich nicht schwer.
Siehe meine andere Antwort.
Herzlichen Glückwunsch Wolfram Hüttermann, sie sind die erste richtig kompetente Person hier in Sachen Überheblichkeit, weit und breit...
Solche Schlaumeiereien an Fragesteller sind schon selten....
Super Hilfe, Kompliment....
<img src="/images/14.gif" border="0" alt="">
Das ist meine Meinung dazu.
Grüße,
Wolfram
Hi,
<img src="/images/14.gif" border="0" alt="">
Das ist meine Meinung dazu.
etwas radikal, hm?
<img src="http://codecamp.net/graphics/unhoeflich.gif" border="0" alt="">
@ronny
Wenn du weißt mit welchem Jahr die Schleife beginnt und mit welchem sie aufhört kannst Du es ja mal hiermit versuchen:
http://de3.php.net/manual/en/control-structures.php
als Beispiel:
for($i=1980;$i<=2003;$i++) {
echo "<option value="$i"".selected($i).">$i</option>";
}
dann schreibst Du dir noch ne Funktion, nämlich selected(), mit der du überprüfen kannst ob $i == $_SESSION['jahr'] ist, z.B. so:
function selected($i) {
echo ($i == $_SESSION['jahr']) ? ' selected="selected"' : '';
}
Gruß,
small-step
Hi,
als Beispiel:
for($i=1980;$i<=2003;$i++) {
echo "<option value="$i"".selected($i).">$i</option>";
}dann schreibst Du dir noch ne Funktion, nämlich selected(), mit der du überprüfen kannst ob $i == $_SESSION['jahr'] ist, z.B. so:
function selected($i) {
echo ($i == $_SESSION['jahr']) ? ' selected="selected"' : '';
danke, es gibt sie noch, die guten helferlein ;)
dein vorschlag hat mich auf den richtigen weg gebracht. sicherlich ne möglichkeit, auch die dinge der anderen helfer können vielleicht zum ziel führen, aber ich habe es mir jetzt so zusammengebastelt.
<?php
//for schleife test
?>
<select name="tag" id="tag">
<?php
$jahr = 1931;
for($i=1933;$i<=1992;$i++) {
$select = "";
if ($i == $jahr)
{$select = "selected";}
echo "<option $select>".$i."</option>";
}
?>
</select>
mir geht es darum, erstmal dinge zu schreiben die ich verstehe und das habe ich verstanden.*gg* mit komplexeren sachen kann ich mich später rumschlagen :)
dein ansatz hat mir die richtung gewiesen. mehr wollte ich nicht. danke
ronny
Hallo,
if ($HTTP_SESSION_VARS[jahr] == "1991"):
Du solltest besser $_SESSION verwenden.
aber da müsst ich ewig viel code schreiben,außerdem müsste ich noch jahrcheck durchnummerieren, gibt es da nicht was besseres?
Es gibt Arrays.
http://www.php.net/manual/de/language.types.array.php
wie kann ich nun eine schleife bauen, die prüft welches jahr die variable hat und dann eben genau im richtigen feld das selected reinsetzt?
Es gibt Schleifen.
http://www.php.net/manual/de/control-structures.php
Gruesse,
Thomas
Oh Mann,
<option value=""></option>
Sieht die Option vielleicht so aus?
Dann sachon mal was von arrays gehört?
Nein?
Wo kommen denn die Daten her aus ner Datenbank?
Wie schreibt man Daten in ein Array?
$arr[]=$var;
Was macht man dann?
Man wertet das Array aus.
Wie wertet man das Array aus?
Vorzugsweise mit einer foreach () Schleife.
Ja Schleife lieber Tom! (nur für Insider)
foreach ($arr as $key=>$value){}
Noch Fragen?
Viele Grüße TomIRL
Hello,
<select name="data[jahr][]">
<option value=""></option>
Sieht die Option vielleicht so aus?
Dann sachon mal was von arrays gehört?
Nein?Wo kommen denn die Daten her aus ner Datenbank?
Wie schreibt man Daten in ein Array?
$arr[]=$var;
Was macht man dann?
Man wertet das Array aus.
Wie wertet man das Array aus?
Vorzugsweise mit einer foreach () Schleife.
Ja Schleife lieber Tom! (nur für Insider)
Hab Dich erwischt *gg* Stimme Dir aber zu.
foreach ($arr as $key=>$value){}
und die Frage mit dem "wie vorbelegen?"
$default ist das Array der anzuzeigenden Vorbelegungen. Der Key des Wertes wird in der DB abgespeichert. =array(5=>"1975";7=>"1977";...)
$db_value ist der Wert aus dem Datenbankfeld.
foreach ($default as $key => $val)
{
$val=htmlentities($val);
$selected="";
if ($db_value = $key)
{
$selected=" selected";
}
echo "<option value="$key"$selected >$val</option>";
}
Versuch es mal so. Ich hoffe, ich habe keinen fehler drin
Grüße
Tom
Hello,
$db_value ist der Wert aus dem Datenbankfeld.
foreach ($default as $key => $val)
{
$val=htmlentities($val);
$selected="";
if ($db_value == $key) ## vielleicht sogar ===
{
$selected=" selected";
}
echo "<option value="$key"$selected >$val</option>";
}
War noch ein Fehler drin.
Hättest Du aber sicher auch selber gesehen.
Tom
<select name="data[jahr][]">
Vorrausgesetzt die Daten sind so!
Keine Ahnung.
Ich habs auch wirklich allgmein gehalten.
Tom
Hello,
<select name="data[jahr][]">
Vorrausgesetzt die Daten sind so!
Keine Ahnung.
Ich habs auch wirklich allgmein gehalten.
Nee, das habe ich nun nicht gemeint. Ich wollte ronny darauf hinweisen, dass er für sein Dialogelement keinen Rückgabenamen vereinbart hatte. Was nützt ihm das Select-Element, wenn er den Rückgabewert nicht auffängt in seinem Script. Der würde dann ohne "name= " irgendwo mitten im Request-String stehen und von PHP ignoriert werden.
name="data[jahr][] als Name fürht dazu, dass das Ergenis der Auswahl im Select-Objekt im Script dann später in
$_POST["data"]["jahr"][0]
..
$_POST["data"]["jahr"][n]
erscheint. Die Abgrenzug und Bindung von Formularfeldern in
[data] gegenüber [ctrl] dür Buttons und Entscheidungen hat sich bewährt. Alle an die DB gebundenen Daten finden sich dann in [data] und können rein meschanisch mit wenigen Zeilen in einer Schleife (!) abgearbeitet werden. Dafür kann man sich polymorphe Funktionen schreiben, die für 90% der Anwendungsfälle passen. Eine komplexe Webanwednung lässt sich dadurch mit wenigen Zeilen und einer schlauen include-Datei (oder auch Klasse) erledigen.
Grüße
Tom