Autor | Zpráva | ||
---|---|---|---|
Joan Profil |
#1 · Zasláno: 11. 5. 2010, 11:08:17 · Upravil/a: Joan
Zdravím,
zkouším si udělat matematické a potom geometrické tabulky, zatím např. výpočet druhé a třetí mocniny. Pokud zadám hodnoty pro výpočet obojího, je vše v pořádku. Když chci ale vypočítat pouze např. druhou mocninu (a třetí už ne), tak se mi správně vypíše výpočet druhé mocniny, ale na dalším řádku se zobrazí "Třetí mocnina z čísla je 0" - protože žádné číslo vloženo nebylo. Formulář: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title>Zadání čísla k výpočtu mocniny</title> </head> <body> <form name="mocniny" action="spocitej_mocninu.php" method="post"> <p>Vypočítá druhou mocninu ze zadaného čísla<br /></p><input name="cislo_druha" type="text" value="" size="12"> <p>Vypočítá třetí mocninu ze zadaného čísla<br /></p><input name="cislo_treti" type="text" value="" size="12"><br /><br /> <input type="submit" value="Vypočítej" margin-left="30"> </form> </body> </html> Nejjednodušší funkční kód: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <title>Výsledek výpočtu druhé mocniny</title> </head> <body> <form name="mocniny" action="spocitej_mocninu.php" method="post"> <p>Vypočítá druhou mocninu ze zadaného čísla<br /></p><input name="cislo_druha" type="text" value="" size="12"> <p>Vypočítá třetí mocninu ze zadaného čísla<br /></p><input name="cislo_treti" type="text" value="" size="12"><br /><br /> <input type="submit" value="Vypočítej" margin-left="30"> </form> <?php $druha_mocnina = $_POST['cislo_druha']; $druha_mocnina = $cislo_druha * $cislo_druha; echo 'Druhá mocnina z čísla '.$cislo_druha.' je '.$druha_mocnina; $treti_mocnina = $_POST['cislo_treti']; $treti_mocnina = $cislo_treti * $cislo_treti * $cislo_treti; echo "<br>"; echo 'Třetí mocnina z čísla '.$cislo_treti.' je '.$treti_mocnina; ?> </body> </html> Zkoušela jsem: 1) if (isset($_POST['cislo_druha'])) if (isset($_POST['cislo_treti'])) 2) if (!empty ($_POST['cislo_druha'] OR $_POST['cislo_treti'])) obojí stále vypisuje že ...mocnina z čísla je 0. Když do výše uvedeného php kódu ještě před vlastní výpočet vložím if ($_POST['cislo_druha'] !="") tak to vypíše ...mocnina z čísla je" Všechny ostatní pokusy končily parse_errorem. Něco jsem zahlídla o funkci "unset" ale nemám představu, jak by se event. použila. 1) Já jen chci, aby v případě, že daný výpočet nepotřebuji, si nevyplněného výpočtu echo vůbec nevšímalo, nevypisovalo vůbec nic = vypisovalo pouze výpočty s vloženými hodnotami (až si tabulky rozšířím třeba na tucet položek). Tj. něco jako negace echo. 2) Proč, když otevřu v prohlížeči přímo kód v php, tak se mi zobrazí že proměnné $cislo_druha a $cislo_treti nejsou definovány, když jsou? Když otevřu formulář v html, něco spočítám, a u výpočtu se mi znova objeví formulář, tak je vše v pořádku, jaktože najednou php o obou proměnných ví!? Prosím o nápovědu, děkuji! |
||
panther Profil |
#2 · Zasláno: 11. 5. 2010, 11:12:18 · Upravil/a: panther
Joan:
dej tam if (!empty($_POST['cislo_druha'])) {echo "druhá mocnina";} if (!empty($_POST['cislo_treti'])) {echo "třetí mocnina";} |
||
Joan Profil |
#3 · Zasláno: 11. 5. 2010, 11:37:19
panther:
Jupííí, ještě než jsem si přečetla Tvoje řešení, tak mě osvítil asi Duch programátorský ;-) a napadlo mě řešení velmi jednoduché a které funguje úplně stejně jako to Tvoje: if (!empty($_POST['cislo_druha'] echo 'Druhá mocnina z čísla '.$cislo_druha.' je '.$druha_mocnina; else echo ""; a totéž pro třetí mocninu. Jak mě jen mohlo nenapadnout vypsat echo jen s prázdnými uvozovkami... Tvoje řešení jsem v podstatě už dřív zkoušela ale chyba byla ve spojení obou podmínek pomocí OR. Hezký den. |
||
Petr__ Profil * |
#4 · Zasláno: 11. 5. 2010, 11:45:40
Používat
echo ""; |
||
panther Profil |
#5 · Zasláno: 11. 5. 2010, 11:46:20
Joan:
else je zbytečné, pokud nic nevypíše, stejně tak jako prázdné echo. |
||
Joan Profil |
#6 · Zasláno: 11. 5. 2010, 11:52:36
Pravda, odmazáním prázdného echo se nic nezkazilo. Díky!
Poučení pro mě: dávat podmínky raději zvlášť místo hromadných a spojovaných operátory. |
||
panther Profil |
#7 · Zasláno: 11. 5. 2010, 11:54:40
Joan:
„dávat podmínky raději zvlášť místo hromadných a spojovaných operátory.“ takhle bych to neřekl. Pro tuto situaci jsou ideální dvě sólo podmínky, jindy je nutné je pospojovat (AND nebo OR), jindy místo dvou IFů použít IF - ELSEIF - ELSE. Záleží od situace, co potřebuješ. |
||
Časová prodleva: 14 let
|
0