Autor Zpráva
szucs
Profil
Zdravim,
mam tabulku a v nej input type text boxy, do ktorych user zadava cisla.
Dole je tlacitko pocitaj.
Potreboval by som, aby po zatlaceni tlacitka pocitaj tieto cisla, ktore user vlozil, sa pekne zarovnali podla desatinnej ciarky(bodky), tak ako to robi WORD.

Dakujem za radu

Vlado
Webspy
Profil
No, tak nevím, co přesně myslíš, ale pokus máš na mysli dělení čísla po třech cifrách tak můžeš použít PHP: (v JScriptu to neumím)

<form method="POST" action="1.php" name="4">
<input type="text" name="puvodni" size="20"><input type="submit" value="Odeslat" name="B1">
</form>


<?
function zformatovat($a)
{
$a = StrRev("".$a);
$zh="";
for ($i=0; $i<StrLen($a); $i++)
{
$zh.=$a[$i];
if (($i+1)%3==0) $zh.= ";psbn&";
}
$a = StrRev("".$zh);
if ($a[0]=='&')
$a = SubStr ($a,6);
return $a;
}
?><?
$hotove = zformatovat($puvodni);
echo "Zformátované číslo : ".$hotove;
?>

(použito z JakNaWeb.com)
szucs
Profil
Dakujem, ale nie je to, co som potreboval.
Ja som tvoj kod doplnil o dalsi input type box, aby to bolo nazorne vidiet.
Teraz ked zadas do oboch policok napriklad tieto cisla
1. cislo: 22,56666
2. cislo 155555,566

tak je vidiet, ze desatinne ciarky nie su pod sebou.

Dakujem pekne za radu,ako to dosiahnut

<form method="POST" action="a.php" name="4">
<input type="text" name="puvodni" size="20">
<input type="text" name="puvodni1" size="20"><input type="submit" value="Odeslat" name="B1">

</form>


<?
function zformatovat($a)
{
$a = StrRev("".$a);
$zh="";
for ($i=0; $i<StrLen($a); $i++)
{
$zh.=$a[$i];
if (($i+1)%3==0) $zh.= ";psbn&";
}
$a = StrRev("".$zh);
if ($a[0]=='&')
$a = SubStr ($a,6);
return $a;
}


$hotove = zformatovat($puvodni);
$hotove1 = zformatovat($puvodni1);

echo "Zformátované číslo : ".$hotove;
echo '<br>';
echo "Zformátované číslo : ".$hotove1;

?>
Yuhů
Profil
Jenom pro pořádek dodávám, že tento problém není řešitelný na straně klienta. Kdysi se uvažovalo o tom, že v tabulkách půjde zarovnávat na konkrétní znak, konkrétně třeba
align="char" char=","
ale to nikde (pokud vím) nefunguje a ani jsem to nenašel v žádné uvažované CSS vlastnosti (třeba jsem ale špatně hledal).
llook
Profil
Zarovnat číslo podle desetinné čárky by šlo rozdělením do dvou buňek tabulky, ale je to příšerná prasárna, nikdo to nikdy nepoužívejte!

<table>
<tr><td>3,</td><td>14</td></tr>
<tr><td>123,</td><td>456</td></tr>
<tr><td>0,</td><td>01</td></tr>
</table>
Yuhů
Profil
hele, llooku, to má vtip! Je to prasárna, ale není úplně od věci. Chce to ještě nezapomenout první sloupec zarovnat doprava.
Webspy
Profil
Tak to se omlouvám, to byl příklad na rozdělení čísel po třech cifrách...
szucs
Profil
Zdravim, ak mozem, znovu trochu oprasit myslienku. Nieco sa mi podarilo.

Ked vkladam to jednotlivych inputov cisla ako napriklad
44.55
1245.156
56.4555

tak to funguje,
akonahle ale do dalsieho inputu vlozim napriklad 0.45, tak uz to nejde.

Problem je v tom, ze ked vlozim iba jedno cislo pred desatinny oddelovac, tak sa to pokasle

Poradite mi prosim?

Vlado


<html>

<body>
<form name="form1" method="post" action="">
<p>
<input name="1" type="text" id="1">
</p>
<p>
<input name="2" type="text" id="2">
</p>
<p>
<input name="3" type="text" id="3">
</p>
<p>
<input name="4" type="text" id="4">
</p>
<p>
<input name="5" type="text" id="5">
</p>
<p>
<input name="6" type="text" id="6">
</p>

<p>
<input type="button" onclick="pocitaj()" value = "Vypočítaj">
</p>
</form>

<script>

function pocitaj()
{


var a10 = new Array(parseFloat(document.getElementById("1").value).toFixed(3),parseF loat(document.getElementById("2").value).toFixed(3),parseFloat(documen t.getElementById("3").value).toFixed(3),parseFloat(document.getElement ById("4").value).toFixed(3),parseFloat(document.getElementById("5").va lue).toFixed(3),parseFloat(document.getElementById("6").value).toFixed (3));




var max1 = 0;
for (var i=0;i<6;i++)
{
if (a10[i].length >max1)
{
max1 = a10[i].length
}

}
for (var i=0;i<6;i++)
{

while (a10[i].length <max1)
{


a10[i] = ' ' + a10[i] ;


}


}

document.getElementById("1").value = a10[0];
document.getElementById("2").value = a10[1];
document.getElementById("3").value = a10[2];
document.getElementById("4").value = a10[3];
document.getElementById("5").value = a10[4];
document.getElementById("6").value = a10[5];

}


</script>

</body>
</html>
Leo
Profil
CSS vlastnost pro zarovnani v bunkach tabulky asi existuje, ale nefunguje nikde:

http://interval.cz/clanek.asp?article=1874

Leo
Fred
Profil
Jsem to zkusil tady http://xy.wz.cz/zarovnani.htm , akorát nevím jak ovlivnit šířku tý mezery, vlastně stačí přidat počet mezer před desetinou čárku. Neumím js natolik, abych to zkrátil, tohle by mělo fungovat do čísla 9999999 .
Toto téma je uzamčeno. Odpověď nelze zaslat.