for Schleife
Tim
- php
Hallo ich habe eine forschleife die bis 20 Zählt:
for ($kw = 1; $kw <= 20; $kw++)
{
$kw;
}
Diese Zahlen sollen anschließen in einer Select Box wiedergeben werden
<select name="Zahlung">
<option value="$kw">$kw</option>
</select>
Leider wird mir immer nur der letzte Wert also die Zwanzig angezeigt es sollen aber alle schön unter einander stehen.
Ich Programmiere erst seit heute mit php darum bitte ich um Gnade :O)
Vielen Dank
Tim
for ($kw = 1; $kw <= 20; $kw++)
{
$kw;
}
In der Schleife machst du ja gar nichts.
<select name="Zahlung">
<option value="$kw">$kw</option>
</select>
Leider wird mir immer nur der letzte Wert also die Zwanzig angezeigt es sollen aber alle schön unter einander stehen.
Ist doch klar, wenn du aus der Schleife heraus kommst, steht $kw auf 20 und die zeigst du an.
Kalle
Ja okej aber wie schaffe ich es denn das iwr die Zahlen 1 - dort abgebildet werden.
So könnte ich es ja auch machen aber das ist ja nicht wirklich sinnvoll
<select name="Zahlung">
<option value="1">1</option>
<option value="2">2</option>
</select>
Ja okej aber wie schaffe ich es denn das iwr die Zahlen 1 - dort abgebildet werden.
Ich würde es so machen:
<select name="Zahlung">
<?php
for ($kw = 1; $kw <= 20; $kw++)
{
echo "<option value=".$kw.">".$kw."</option>\n";
}
?>
</select>
Könnte bei dir auch klappen.
Kalle
Okej vielen Dank das hat alles geklappt.
Da ich ja dabei bin das zu lernen hätte ich jetzt gerne mal gewußt wie es geht die Zahlen in ein Array zu schreiben. Denn dann kann ich das ja auch in der Select Box ausgeben ohne das die for schleife sich in der Select Box befindet.
Denn ich wollte später mal das ganze mit smart versuchen einer Templatesprache und da muss ja Code vom Design getrennt sein.
Danke ich habs schon hinbekommen *freu*.
Hallo Kalle.
Ich würde es so machen:
Kleine Korrektur:
<select name="Zahlung">
[code lang=php]<?php
for ($kw = 1; $kw <= 20; $kw++)
{
echo '<option value="'.$kw.'">'.$kw.'</option>'."\n";
}
?>
> </select>[/code]
Einen schönen Dienstag noch.
Gruß, Ashura
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[[HTML Design Constraints: Logical Markup](http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/HTMLConstraints.html)]
Hi,
Ich Programmiere erst seit heute mit php darum bitte ich um Gnade :O)
na dann wollen wir mal :-)
for ($kw = 1; $kw <= 20; $kw++)
{
$kw;
}
Fragen wir uns, was diese Schleife tut: Sie startet mit der Variable kw und dem Wert 1, zählt diesen dann bis 20 hoch. In der Schleife passiert _gar nichts_ da steht die nichts-sagende Variable $kw
<select name="Zahlung">
<option value="$kw">$kw</option>
</select>
Wenn du das mit echo so ausgibts, dann steht da der Wert von $kw _nach_ der Schleife, also der letzte = 20.
--> Ergo: Verlagere die Ausgabe der Options _in_ die Schleife, also genau dort wo sich der Wert ändert, schematisch:
<select ...>
for ...
echo "<option ..."
</select>
MfG
Rouven
Hallo,
na dann wollen wir mal :-)
for ($kw = 1; $kw <= 20; $kw++)
{
$kw;
}
Fragen wir uns, was diese Schleife tut: Sie startet mit der Variable kw und dem Wert 1, zählt diesen dann bis 20 hoch. In der Schleife passiert _gar nichts_ da steht die nichts-sagende Variable $kw
Genau. Als Anweisung aufgefasst: Lies den momentanen Wert von $kw und tu nichts damit.
Wenn du das mit echo so ausgibts, dann steht da der Wert von $kw _nach_ der Schleife
Richtig.
also der letzte = 20.
Falsch.
Die for-Schleife führt *erst* die Iterations-Anweisung (hier: $kw++) aus und prüft *dann* die Abbruchbedingung. Das führt dazu, dass die Laufvariable *nach* der Schleife den Endwert+1 hat, in diesem Beispiel 21, nicht 20. Allerdings wird die Schleife mit dem Wert 21 korrekterweise nicht mehr durchlaufen.
Dieses Verhalten der for-Schleife kenne ich schon von C, da ist es so definiert, und Javascript verhält sich genauso. Bei PHP war ich mir im Moment nicht absolut sicher, deshalb habe ich es ausprobiert.
Hätte mich auch gewundert, wenn das gleiche Sprachkonstrukt in PHP signifikant anders implementiert ist als in anderen, ähnlich strukturierten Sprachen.
Schönen Abend noch,
Martin