Ahoj mám v celku normální formulář který, vypíše na každý řádek den,input od, input do (to znamená to co chci od sebe odečíst ) a rád aby se mi vedle napsal automaticky výsledek nejlepší by bylo do inputu nebo nějak jinak abych to mohl předat GET methodou skriptu kterýten formulář zpracuje
thank you in advance
Fórum › PHP
Sečtění dvou inputů
To tommassino: A co že se to vlastně skrývá v tom input od a do? Sice tuším, ale nechci(em) se namáhat zbytečně. Jinak jestli chceš, aby výsledek klasický BFU nezměnil, měj to v hidden inputu nebo to zobrazuj v non editable text inputu(tuším vlastnost disabled).
you are welcome
To D1ce:v od je čas začátku a do čas konce a v tom třetím inputu by byl počet hodin, to mě napadlo ten další input nastavit jako needitovatelný problém je že nevím jak do něj dostat ten výsledek po odečtení (i když v názvu topicu mám sečtení)
tommassino píše:#
# To D1ce:v od je čas začátku a do čas konce a v tom třetím inputu by byl počet hodin, to mě napadlo ten další input nastavit jako needitovatelný problém je že nevím jak do něj dostat ten výsledek po odečtení (i když v názvu topicu mám sečtení)
Časy jednoduše od sebe odečteš díky timestampům, na které je převedeš fcema jako strtotime() strptime() nebo mktime() (neuvedl jsi formát času, nebude ani příklad :P ). Má to ovšem jeden háček, ty propočty můžeš provést jen a pouze, pokud ti uživatel pošle data. Možná by se ti šiklo dynamické počítání dle JS(možná bys to chtěl i pomocí AJAXu posílat rovnou na server), ale tam zase nevím, jak jednoduše získat timestamp z data(Ale určitě by šel spravit nějaký algorytmus dle specifického formátu).
To D1ce:no t já právě potřebuju ten skript . to je to co nevim: Jak po vyplnění hodnot do obou inputu "okamžitě" zobrazit ve vedlejší needitovatelném tu hodnotu . co se týče formátu na tom až tolik nezálěží ale pomocí toho skriptu bych rád vložil data do toho určitého needitovatelného inputu .Spíše mi prosím napiš pokud víš jak by jsi to konkrétně řešil (včetně kodu )
díky za další odpoved
V JS ziskas timestamp takhle
var timestamp = Date.parse(new Date());
Jou, popisalo sa tu uz hodne, ale stale mi nieje jasne, co presne potrebujes...
Chces aby formular odosielal scriptu dva timestampy (od, do), alebo ti staci jeden udaj ( rozdiel casov ) ? Ak to potrebujes len pre script na serveri, tak to vyrataj az tam a na javascript sa vykasli.
Ak vsak ten casovy rozdiel chces zobrazovat, pocas vyplnania formulara (co predpokladam), bez client-side scriptov to nespravis... Ak chces aby ti niekto pomohol ten javascript nakodit, budes musiet popisat, ako to vlastne chces...
konkretne, chces aby user napisal dva casy do dvoch inputov (input type="text") ???
o akych casoch je rec? bude sa tam uvadzat den,mesiac,rok,hodina,minuta,sekunda, alebo iba cas v ramci jedneho dna?
Ja taketo veci riesim pomocou viacerych selectov, cize pri vypocte by nevznikali problemi s formatom textovej reprezentacie zapisu.
asi takto by som to riesil keby slo o hod, min, sec:
<script type="text/javascript">
function get_val(elmID)
{
return document.getElementById(emlID).value;
}
function recount()
{
od = get_val('od_h')*60*60 + get_val('od_m')*60 + get_val('od_s');
do = get_val('do_h')*60*60 + get_val('do_m')*60 + get_val('do_s');
if (od>do) od+=24*60*60; // ak by tam bol presvih cez polnoc
rozdiel = do-od;
document.getElementById('rozdiel').value = rozdiel + ' sekund';
}
</script>
<form ..... >
Od:
<select id="od_h" name="od_h" onchange="recount()"><?php for($i=0;$i<24;$i++) echo "<option value=\"$i\"".($od_h==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
<select id="od_m" name="od_m" onchange="recount()"><?php for($i=0;$i<60;$i++) echo "<option value=\"$i\"".($od_m==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
<select id="od_s" name="od_s" onchange="recount()"><?php for($i=0;$i<60;$i++) echo "<option value=\"$i\"".($od_s==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
Do:
<select id="do_h" name="do_h" onchange="recount()"><?php for($i=0;$i<24;$i++) echo "<option value=\"$i\"".($do_h==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
<select id="do_m" name="do_m" onchange="recount()"><?php for($i=0;$i<60;$i++) echo "<option value=\"$i\"".($do_m==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
<select id="do_s" name="do_s" onchange="recount()"><?php for($i=0;$i<60;$i++) echo "<option value=\"$i\"".($do_s==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
Rozdiel: <input id="rozdiel" type="text" disabled="disabled" value="" />
</form>
To Prog.:díky to je v podstatě to co chci jen mi to nefunguje ten výsledek se ne a ne zobrazit)
bol to len taky nacrt... toto by uz malo aj fungovat:
<script type="text/javascript">
function get_val(elmID)
{
return parseInt(document.getElementById(elmID).value);
}
function recount()
{
cas_od = get_val('od_h')*60*60 + get_val('od_m')*60 + get_val('od_s');
cas_do = get_val('do_h')*60*60 + get_val('do_m')*60 + get_val('do_s');
if (cas_od>cas_do) cas_do+=24*60*60; // ak by tam bol presvih cez polnoc
rozdiel = cas_do-cas_od;
document.getElementById('rozdiel').value = rozdiel + ' sekund';
}
</script>
<form ..... >
Od:
<select id="od_h" name="od_h" onchange="recount()"><?php for($i=0;$i<24;$i++) echo "<option value=\"$i\"".($od_h==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
<select id="od_m" name="od_m" onchange="recount()"><?php for($i=0;$i<60;$i++) echo "<option value=\"$i\"".($od_m==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
<select id="od_s" name="od_s" onchange="recount()"><?php for($i=0;$i<60;$i++) echo "<option value=\"$i\"".($od_s==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
Do:
<select id="do_h" name="do_h" onchange="recount()"><?php for($i=0;$i<24;$i++) echo "<option value=\"$i\"".($do_h==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
<select id="do_m" name="do_m" onchange="recount()"><?php for($i=0;$i<60;$i++) echo "<option value=\"$i\"".($do_m==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
<select id="do_s" name="do_s" onchange="recount()"><?php for($i=0;$i<60;$i++) echo "<option value=\"$i\"".($do_s==$i ? ' selected="selected"':'').">".($i<10 ? "0$i":"$i")."</option>"; ?></select>
Rozdiel: <input id="rozdiel" type="text" disabled="disabled" value="" />
</form>
To Prog.:až přijdu domu tak vyzkoušim
díky moc za pomoc
funguje to ;-)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Podmínky při řešení soustavy dvou lineárních rovnic o dvou neznámých — založil martin.kubik
Seřazení a sečtení — založil Reg
Vstup do souboru, sečteni výsledků — založil Kenvelo
Sečtení sudých čísel ve sloupcích matice — založil Rodney
Velkost INPUTu — založil marioff
Moderátoři diskuze