Autor | Zpráva | ||
---|---|---|---|
Yperetes Profil * |
Omlovám se, ale potřeboval bych poradit ještě s jednou věcí.
Potřebuji zapsat takovýto php skript: Mám proměnné $a; $b --> Potřebuji aby skript odečítal $b od $a tak dlouho dokud nebude platit $a<$b (tedy pravděpodobně bude potřeba nějaký cyklus) a poté mi to vypsalo tuto hodnotu ($a). Samozřejmě pokud bude podmínka splněná hned na začátku, budu chtít aby mi to tuto hodnotu ($a) vypsalo rovnou na začátek a cyklus probíhat nebude. Jelikož ale nemám zkušenosti s cykly, potřeboval bych od někoho poradit. Předem děkuji za odpověd |
||
Laman Profil |
#2 · Zasláno: 6. 2. 2011, 12:30:10
<? while($a>=$b){$a-=$b;} echo($a); ?> možná ještě ifem zkontrolovat, že $b je kladné, aby cyklus někdy skončil... |
||
Yperetes Profil * |
#3 · Zasláno: 6. 2. 2011, 12:59:28
Díky, jen jsem nevěděl, jak to zapsat do cyklu a ono je to tak jednoduché :-)
|
||
Tori Profil |
#4 · Zasláno: 6. 2. 2011, 13:03:55 · Upravil/a: Tori
Yperetes:
Pokud vám jde jen o to odečítání a během cyklu nic jiného neděláte, stačí použít modulo: $a = ($a < $b ? $a : $a % $b); |
||
Yperetes Profil * |
#5 · Zasláno: 7. 2. 2011, 22:09:02
Ano, jde mi pouze o to odečítání do té doby, dokud není splněna podmínka, pro kterou se následně vypíše výsledek. A ještě jsem se chtěl zeptat, u PhP skriptu asi nejsou vyskakovací okna že? (jako např. v javaskriptu, aby třeba po nesplněné podmínce vyskočilo okno s chybovým hlášením a nápovědou co a jak). Popř. jestli tyto dva skripty nejde nějak zkombinovat.
|
||
panther Profil |
#6 · Zasláno: 7. 2. 2011, 22:11:38 · Upravil/a: panther
Yperetes:
„Popř. jestli tyto dva skripty nejde nějak zkombinovat.“ jdou. Proč by nešly? Vyzkoušet si to můžeš na nejjednodušším příkladě. <?php if (1 != 2) { ?> <script>alert ('chyba');</script> <?php } ?> |
||
Yperetes Profil * |
#7 · Zasláno: 7. 2. 2011, 22:42:45
Musí to být napsné přesně takto (aby tam byl ten zapis php dvakrát a ty složené závorky mezi ním)? Podmínku mám ($b < 1) a skript mi vyskakuje pokaždé. K tomu nevím úplně přesně, jak do toho navíc zakomponovat ten první kód:
<?php while($a>=$b){$a-=$b;} echo($a); ?> |
||
Yperetes Profil * |
#8 · Zasláno: 8. 2. 2011, 16:18:47
Už se mi to podařilo zakomponovat. Ještě bych měl tedy poslední otázku k tomuto tématu. A to jestli je možné (možné je to asi určitě, spíš mě zajímá zápis kódu), aby v případě nesplněné podmínky a vyskočení chybového hlášení nepokračovala stránka v provádění další operace (v tomto případě cyklu), ale po odkliknutí OK ve vyskočivším okně se vše opět vrátilo na stránku s formulářem.
|
||
Tori Profil |
#9 · Zasláno: 8. 2. 2011, 16:43:44 · Upravil/a: Tori
Yperetes:
„v případě nesplněné podmínky a vyskočení chybového hlášení“ To myslíte tu podmínku $b < 1 ? Takhle to nefunguje - PHP skript se provede na serveru, k uživateli přijde jen jeho výsledek. A teprve v prohlížeči se začne zpracovávat JavaScript (a vyskočí hláška). V PHP nastavíte, aby po nesplnění podmínky už skript nedělal nic dalšího. Přesměrovat pak můžete a) ještě v PHP (funkce header), b) v JS po odkliknutí hlášky (window.location), anebo c) formulář i jeho zpracování dát do jednoho PHP skriptu, který zobrazí buď chybu nebo výsledek. |
||
Yperetes Profil * |
#10 · Zasláno: 8. 2. 2011, 22:10:04
Ano, jedná se o podmínku $b < 1 . Trochu jsem to tušil, že to nepůjde tak, jak jsem chtěl. To přesměrování dám asi do JS. A ono bych to ani nemusel nastavovat v PHP, aby se nic nedělalo, ne? Jelikož se buď za a) podmínka nebude porušena (neproběhne JS) a PHP mi vypíše co potřebuji a nebo za b) mi vyskočí okno v JS a po odkliknutí se přesměruje, tudíž bude PHP automaticky ukončeno, ne?
Každopádně děkuji za odpověď |
||
Časová prodleva: 13 let
|
0