Autor | Zpráva | ||
---|---|---|---|
Xantippa Profil |
Zdravím, chtěla bych vás poprosit o radu.
Zadání příkladu bylo: "Jednookýnkový" formulář, číslo v něm zadané udává, kolik náhodných čísel od 1 do 100 se vypíše (např. při zadání 5 by se měla objevit např. čísla 15, 29, 9, 97, 56). Měli jsme zjistit to největší číslo (to mám), a pak součet těch čísel a to už jsem nezvládla. Dovedl by mi někdo, prosím, poradit? (Čím jednodušší, tím lepší, přeci jen teprve začínám :)) Děkuji mnohokrát. Přikládám zdrojový kód: <fieldset><legend>Čísla</legend> <form method="post"> <input placeholder="Zadej číslo" name="cislo" type="text" size="10" /> <input class="tlacitko" value="OK" type="submit" /> </form> <?php $a = $_POST["cislo"]; $max = 1; if($a) {for($i=1;$i<=$a;$i++) {$b = rand(1,100); echo "$b "; if($b > $max) $max = $b;} echo "<br/>Největší číslo je $max."} ?> |
||
Taps Profil |
Xantippa:
<? <?php $a = $_POST["cislo"]; if($a) {for($i=1;$i<=$a;$i++) { $cisla[] = rand(1,100); } echo "<br/>Největší číslo je ".max($cisla)." Součet činí ".array_sum($cisla); } ?> |
||
xROAL Profil |
#3 · Zasláno: 5. 5. 2014, 16:49:41
Taps:
Máš tam trošku chybičku v tom echu. Skôr takto: echo "<br/>Největší číslo je ".$max.". Součet činí ".$cislaSoucet; Inak je to funkčné riešenie. |
||
Xantippa Profil |
Taps:
Děkuji mnohokrát, jen se chci ještě zeptat... Jak vypsat ta použitá čísla? |
||
Taps Profil |
Xantippa:
<? $a = $_POST["cislo"]; if($a) {for($i=1;$i<=$a;$i++) { $cisla[] = rand(1,100); } echo implode (", ",$cisla) //vypíše vygenerovaná čísla echo "<br/>Největší číslo je ".max($cisla)." Součet činí ".array_sum($cisla); } ?> |
||
CZghost Profil |
#6 · Zasláno: 5. 5. 2014, 17:01:07
Xantippa:
Jenom malinké upřesnění formuláře - Pokud chceš pouze čísla, zadávej typ políčka pro čísla: <fieldset><legend>Čísel</legend> <form method="post"> <input placeholder="Zadej číslo" name="cislo" type="number" size="10" /> <input class="tlacitko" value="OK" type="submit" /> </form> </fieldset> <fieldset> je párový, pozor na to ;-)
|
||
Xantippa Profil |
#7 · Zasláno: 5. 5. 2014, 17:03:25
CZghost:
Uzavřený ho mám, jen chybička při kopírování, ale děkuji :) Taps: Děkuji mnohokrát! :) |
||
Taps Profil |
#8 · Zasláno: 5. 5. 2014, 17:06:30
CZghost:
V případě, že se bude formulář optimalizovat pro HTML5 tak je vhodné doplnit min a max a tak omezit rozptyl hodnot, které mohou být zadávány. |
||
juriad Profil |
#9 · Zasláno: 5. 5. 2014, 17:16:59
Xantippa:
Atribut placeholder nefunguje ve starších prohlížečích. Navíc jeho obsahem nemá být popis pole, ale ukázka toho, co do něj vyplnit. Popis pole se dává do elementu label. Tvůj původní kód je chybně vzhledem k definici $a: if (isset($_POST["cislo"]) { $pocet = intval($_POST["cislo"]; $max = 1; for ($i = 1; $i <= $pocet; $i++) { $cislo = rand(1,100); echo "$b "; if ($b > $max) { $max = $b; } } echo "<br>Největší číslo je $max."; } Odsazuj rozumně kód, piš mezery kolem operátorů. Pak je kód přehlednější a čitelnější. CZghost: Ano, je vhodnější typ number. Projde to i ve starších prohlížečích, které tento typ neznají. Pak se to zobrazí, jakoby to byl typ text. |
||
pcmanik Profil |
#10 · Zasláno: 5. 5. 2014, 23:41:18
xROAL:
Akú chybu tam má? Ja nič nevidím, ty si odtiaľ odmazal obidve potrebné funkcie a naviac si pridal dve nedefinované premenné. |
||
juriad Profil |
#11 · Zasláno: 5. 5. 2014, 23:47:35
pcmanik:
Chyba am byla; chyběla uvozovka nebo byla tečka na špatném místě, už si nepamatuji. Všimni si, že Taps příspěvek upravil. Nejsem si vlastně ani jistý, zda v původní verzi byly použité funkce max a array_sum. Je tedy možné, že xROALův příspěvek dával smysl. |
||
jenikkozak Profil |
#12 · Zasláno: 6. 5. 2014, 00:09:24
pcmanik:
xROAL reagoval na tuto chybnou verzi skriptu: <? <?php $a = $_POST["cislo"]; $max = 1; if($a) {for($i=1;$i<=$a;$i++) {$b = rand(1,100); $cislaSoucet+=$b; if($b > $max) $max = $b; } echo "<br/>Největší číslo je $max." Součet činí ".$cislaSoucet;} ?> |
||
CZghost Profil |
#13 · Zasláno: 6. 5. 2014, 16:47:46
Taps:
„V případě, že se bude formulář optimalizovat pro HTML5 tak je vhodné doplnit min a max“ Tak to samozřejmě, ale nevím jaký rozptyl bude chtít, tak jsem ho nezadával :-) |
||
Časová prodleva: 10 let
|
0