Dobrý deň chalani,
z JavaScriptu neviem v podstate nič a potreboval by som upraviť jeden scriptík...
Ide o výpočet dní medzi dvomi dátumami... Našiel som už konkrétne a funkčné riešenie, ktoré však musím implementovať do redakčného systému (Joomla! + Chronoforms, ale to zrejme nie je smerodajné).
Je to podla mňa triviálny problém, ale po dvoch dňoch štúdia a asi 100 rôznych neuspešných pokusoch a variantách som sa rozhodol vzdať to...
Nasledújúci skript som podľa manuálu "zosmolil" na súčin troch čísel vo formuláry. Neviem, či je to čistý JavaScript, alebo nejaká jeho mutácia, ale v spomínanom CMS to funguje správne.
window.addEvent('domready', function() {
$('aaa').addEvent('change', scitanie);
$('bbb').addEvent('change', scitanie);
$('ccc').addEvent('change', scitanie);
});
function scitanie(){
$('ddd').value = $('aaa').value * $('bbb').value * $('ccc').value;
}
Nižšie uvádzam funkčný skript na výpočet dní medzi dátumami. Potreboval by som ho upraviť tak, aby tie dátumy spočítaval ihneď po zadaní tak, ako skript vyššie.
<!-- Paste this code into an external JavaScript file named: dateDiff.js -->
function calcDays(){
var date1 = document.getElementById('d1').lastChild.data;
var date2 = document.getElementById('d2').lastChild.data;
date1 = date1.split("-");
date2 = date2.split("-");
var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
document.getElementById('diffDays').lastChild.data = daysApart;
}
onload=calcDays;
<!-- Paste this code into the HEAD -->
<script type="text/javascript" src="dateDiff.js"></script>
<!-- Paste this code into the BODY -->
<table width='220' border='1' cellspacing='0' cellpadding='5' align="center">
<tr>
<td>Starting<br>Date</td>
<td>Ending<br>Date</td>
<td>Total<br>Days</td>
</tr><tr>
<td id='d1'>01-01-2006</td>
<td id='d2'>08-05-2006</td>
<td id='diffDays' align='center'> </td>
</tr>
</table>
Viacmenej by som len potreboval upraviť druhý vložený skript podľa syntaxu toho prvého (ktorý v komponentne funguje)(ale neviem posúdiť, či je to čistý javascript, možno je to nejaká mutácia... nepoznám JavaScriptový syntax).
Ak vám to nejak pomôže, prikladám link na konkrétny formulár (prvý pastnutý script(funkčný))
http://chrono.smartdirect.sk/index.php?option=com_chronoforms&chronoform=form_datumy
A malo by to byť rozšírené tak, aby nebolo treba ručne zadávat počet nocí, ale bol by počítaný z datapickerov.
http://chrono.smartdirect.sk/index.php?option=com_chronoforms&chronoform=form_datumy_vypocitat
(web prosím neriešte, je to čisto testovacia záležitosť)
Vedel by mi s tým prosím niekto poradiť? Ak sú potrebné nejaké dalšie informácie, rád ich obratom dodám.
(Ak by sa našiel niekto ochotný poradiť mi, prosím, zohľadnite fakt, že s JavaScriptom nemám skutočne žiadne skúsenosti a odpovede je teda potrebné formulovať ako pre blondínku.)
Vopred veľmi pekne ďakujem.