for next loop
Is het mogelijk om manueel in te geven hoeveel keer een for loop moet doorlopen worden ?
for ($a=1; $a<= X ; $a++)
de waarde X wil ik aan het begin van het programma ingeven en dat wil maar niet lukken.
Kan iemand mij helpen aub
Dat werkt wel, maar de waarde is is niet altijd dezelfde en ik wil die met een input ingeven.
Vanuit een database? Vanuit een formulier?
Principe blijft verder gelijk. Ken (in mijn voorbeeld) de waarde toe aan een variabele en het zou moeten werken.
Kortom: leg (duidelijker) uit waar je op vastloopt.
dan heb je twee php pagina's nodig.
één met een <form> ofwel formulier, en één die het formulier afhandeld. in die laatste kun je dan die lus maken die een aantal keer dooplopen wordt afhankelijk van de waarde die in het formulier ingevuld is.
Kortom je zou je moeten verdiepen in het maken van formulieren: http://www.phptuts.nl/view/39/8/
Bedankt voor de reacties.
Frank, je omschrijft precies wat ik bedoel. In een formulier geef ik in hoeveel keer een stukje programma moet doorlopen worden.
De vraag is Hoe krijg ik de ingegeven waarde in het FOR .....$b opdracht ? het formulier op zich maken, is het probleem niet.
for $a =1 ;$a<=$b ; $a++
Groetjes
Frank Nietbelangrijk op 09/02/2013 23:31:46:
met een input veld van een formulier bedoel je?
dan heb je twee php pagina's nodig.
één met een <form> ofwel formulier, en één die het formulier afhandeld. in die laatste kun je dan die lus maken die een aantal keer dooplopen wordt afhankelijk van de waarde die in het formulier ingevuld is.
Kortom je zou je moeten verdiepen in het maken van formulieren: http://www.phptuts.nl/view/39/8/
dan heb je twee php pagina's nodig.
één met een <form> ofwel formulier, en één die het formulier afhandeld. in die laatste kun je dan die lus maken die een aantal keer dooplopen wordt afhankelijk van de waarde die in het formulier ingevuld is.
Kortom je zou je moeten verdiepen in het maken van formulieren: http://www.phptuts.nl/view/39/8/
Kan toch gewoon op 1 pagina? Als je je code gescheiden wilt houden is het netjes natuurlijk maar dan kan je ook gebruik maken van templates..
Op de vraag:
Code (php)
Kan het niet testen maar dit zou moeten werken.. Gezien je zelf zegt geen problemen hebt met hoe je forms kan maken laat ik dat aan jou over.
Mebus het kan natuurlijk op één pagina maar de kunst is om iemand die er nog niet zo veel ervaring mee heeft net het zetje te geven dat ie nodig heeft. De boel gescheiden houden op twee verschillende pagina's is voor zo iemand overzichtelijker en het geeft beter de werking weer
Frank Nietbelangrijk op 11/02/2013 12:23:34:
Mebus het kan natuurlijk op één pagina maar de kunst is om iemand die er nog niet zo veel ervaring mee heeft net het zetje te geven dat ie nodig heeft. De boel gescheiden houden op twee verschillende pagina's is voor zo iemand overzichtelijker en het geeft beter de werking weer
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['waarde']) && strlen(trim($_POST['waarde'])) != 0 && is_numeric($_POST['waarde']) && $_POST['waarde'] > 0)
{
for($a=0;$a<$_POST['waarde'];$a++)
{
echo $a;
}
}
}
?>
<form method="post" action="">
<input type="text" name="waarde" />
<input type="submit" value="Versturen" />
</form>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['waarde']) && strlen(trim($_POST['waarde'])) != 0 && is_numeric($_POST['waarde']) && $_POST['waarde'] > 0)
{
for($a=0;$a<$_POST['waarde'];$a++)
{
echo $a;
}
}
}
?>
<form method="post" action="">
<input type="text" name="waarde" />
<input type="submit" value="Versturen" />
</form>
Is toch hetzelfde en helemaal niet zo verwarrend? Maar ja, het kan misschien wel handig zijn zoals hoe jij het zegt..
Gewijzigd op 11/02/2013 12:31:09 door Mebus Hackintosh
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<html>
<body>
<form method="post" action="result.php">
<input type="text" name="aantal" />
<input type="submit" value="Go!" />
</form>
</body>
</html>
<body>
<form method="post" action="result.php">
<input type="text" name="aantal" />
<input type="submit" value="Go!" />
</form>
</body>
</html>
opslaan als result.php:
Het doet me plezier jullie reacties te lezen. Als de opgegeven codes kloppen zal het wel lukken denk ik.
Vanavond kan ik het uitproberen en dan laat ik wel weten hoe het afloopt.
grts
Mon
is_numeric of is_int.. Als ik kijk op de docuementatie website van php.net is het om het nummer te verkrijgen van een variabele en niet om te kijken of een variabele een nummer/integer is.
@Frank, ik vind niet dat je intval moet gebruiken om te kijken of een variabele een nummer/integer is.. Gebruik dan Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['nummer']) && is_int((int) $_POST['nummer']) && $_POST['nummer'] > 0)
{
for($a=0;$a<$_POST['nummer'];$a++)
{
echo $a.'<br />'.PHP_EOL;
}
}
}
?>
<form method="post" action="">
<input type="text" name="nummer" /><br />
<input type="submit" value="Versturen" />
</form>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['nummer']) && is_int((int) $_POST['nummer']) && $_POST['nummer'] > 0)
{
for($a=0;$a<$_POST['nummer'];$a++)
{
echo $a.'<br />'.PHP_EOL;
}
}
}
?>
<form method="post" action="">
<input type="text" name="nummer" /><br />
<input type="submit" value="Versturen" />
</form>
intval of is_int zijn wat mij betreft bijna vergelijkbaar, alleen de een geeft true or false en de ander een integer.
is_numeric echter geeft ook true wanneer je een float of een Wetenschappelijke notatie gebruikt.
Het is natuurlijk maar wat je als programmer wilt. Ik wil hier uitsluiten dat er iets anders wordt ingevuld dan een positief geheel getal. met intval krijg ik altijd een geheel getal (integer). met if($aantal > 0) sluit ik negatieve getallen en de nul uit. Mijn doel is nu bereikt en daar gaat het om.
Mebus Hackintosh op 11/02/2013 14:08:23:
@Frank, ik vind niet dat je intval moet gebruiken om te kijken of een variabele een nummer/integer is..
intval gebruik je om te casten (= een waarde forceren naar een bepaald dataType), niet om te evalueren.
Jij cast trouwens ook.
intval($_POST['waarde'])
is het zelfde als
(int) $_POST['waarde']
De omstandigheden waarbij je het gebruikt, is wanneer je een integer verwacht, no matter what.
intval garandeert je dat de waarde niets anders dan een integer zal zijn (default-waarde is nul).
Kwestie van je if() wat korter en leesbaarder te houden, lijkt dit me wenselijk.
Code (php)
Gewijzigd op 11/02/2013 14:52:40 door Kris Peeters
Deze middag heb ik de code die ik van Mebus ontving in mijn programma ingepast en tot mijn eigen verbazing werkte het na een paar aanpassingen perfect. Enkel numerieke waarden worden aangenomen voor de loop en in mijn tabellen worden de gewenste aantallen rijen netjes ingevuld.
Of die code nu korter kan is voor mij op dit ogenblik niet belangrijk. Het belangrijkste is dat ik begrijp wat er gebeurd.
Heel erg bedankt
R Colin