Autor Zpráva
MilanJ
Profil
Potřeboval jsem zjistit, jestli ve formuláři zadané číslo je zaokrouhleno na rovné tisíce, bez destinné tečky, prostě jen celé číslo zaokrouhlení na tisíce.

Použil jsem tedy následující výraz:


$jeZaokrouhlenoNa1000 = $_POST['vyraz'] % 1000;
if ($jeZaokrouhlenoNa1000 != 0)
{
echo "výraz NENÍ zadaný v celých tisících";
}
else
{
echo "výraz JE zadaný v celých tisících";
}


Když zadám do formuláře číslo s desetinou čárkou, např. 15000.5, výraz se vyhodnotí jako zaokrouhlený na tisíce.
Jak vyřešit, aby kontrola zadání fungovala i pro desetinná čísla vč. desetinné čárky?

Poradí někdo?
MilanJ
Profil
Existuje nějaká funkce, která tohle řeší?
Oswald
Profil
Myslím, že hledáš funkci fmod().
roberta
Profil
kontrola formulárových polí sa väčšinou robí pomocou regulárnych výrazov


<form method="post">
<input type="text" name="vyraz">
<br>
<input type="submit" value="zisti">
</form>
<?php
$jeZaokrouhlenoNa1000 = $_POST['vyraz'];
if(strlen($jeZaokrouhlenoNa1000)>0)
{
if (ereg("^[0-9]+[0]{3}$", $jeZaokrouhlenoNa1000))
{
echo "výraz: <span style='color: red;'>".$jeZaokrouhlenoNa1000."</span> JE zadaný v celých tisících";
}
else
{
echo "výraz: <span style='color: red;'>".$jeZaokrouhlenoNa1000."</span> NENÍ zadaný v celých tisících";
}
}
?>


otestovať si to môžeš klinkutím na http://test.ikoner.sk/tisic.php (je tam presne tento kód)
rabbit
Profil
kontrola formulárových polí sa väčšinou robí pomocou regulárnych výrazov

Nesouhlasím, kontrola čehokoli se dělá různě v závislosti na situaci. Toto je hooodně zjednodušené tvrzení, se kterým se nedá souhlasit ;-)
roberta
Profil
rabbit
nejaký príkladík na kontrolu textboxu, ktorý by nezvládli zvalidovať regulárne výrazy, by sa nenašiel?
WanTo
Profil
roberta
Někdy jsou regulární výrazy zbytečně komplikované :o)
Oswald
Profil
roberta regexpy jsou fajn, ale pokud jde o čísla, tak je lepší použít k tomu určené funkce a pracovat s nima jako s číslama, předejde se tak snázeji chybám, jako např. "výraz: 0000 JE zadaný v celých tisících" :)
Joker
Profil
nejaký príkladík na kontrolu textboxu, ktorý by nezvládli zvalidovať regulárne výrazy, by sa nenašiel?
Políčko $_POST["id"] musí být číslo větší než $id_min a menší než $id_max.

Tak se předveďte.

Jinak tahle věta je něco jako "Nějaký příklad programu, který nejde napsat v assebleru?"
Samozřejmě, že*jde* udělat lecos lecjak, ale to ještě není důvod to tak dělat ;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.