ユーザーが今日の日付を選択した場合、RM 10.00 が請求され、ユーザーが明日の日付を選択した場合、請求額は 5.00、それ以外の場合は 0.00 という条件の日付関数があります。条件ごとに、他のモジュールに渡すことができるようにセッションを作成する必要があります。ただし、ユーザーが日付を選択して [次へ] をクリックすると、セッションのデータも最後の条件からの最後の値 (値は 0.00) を返します。以下はコードです:
window.onload = function(){
var d = new Date();
d.setDate(new Date().getDate());
var time = d.toTimeString().substr(0, d.toTimeString().lastIndexOf(" "));
if(d.toTimeString() > "17.00")
{
$(document).ready(function() {
$('#datepicker-example2').Zebra_DatePicker({
direction:1,
onSelect: function(view, elements) {
var month = d.getMonth()+1;
var day = d.getDate();
var next_day = 1;
var tomoro = new Date();
var res = tomoro.setTime(tomoro.getTime() + (next_day * 24 * 60 * 60 * 1000));
tomoro = new Date(res);
var tom_month = tomoro.getMonth()+1;
var tom_day = tomoro.getDate();
var currDate = d.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' +
((''+day).length<2 ? '0' : '') + day;
var tomDate = tomoro.getFullYear() + '-' +
((''+tom_month).length<2 ? '0' : '') + tom_month + '-' +
((''+tom_day).length<2 ? '0' : '') + tom_day;
if($('#datepicker-example2').val() == currDate)
{
$('#charge').val('RM10.00');
setSession('10.00');
}else
if($('#datepicker-example2').val() == tomDate)
{
$('#charge').val('RM5.00');
setSession('5.00');
}else
{
$('#charge').val('RM0.00');
setSession('0.00');
}
}
});
});
}
}
function setSession(str)
{
$.ajax({url: "set_session.php", type: "post", data: {"ses": str}})
}
set_session.php のページ
<?php session_start();
$ses = $_POST['ses'];
$_SESSION['charge'] = $ses; ?>
メインファイルは .tpl に保存されます
*更新: 値を取得できるようになりましたが、イベントに問題があるようです。例: 最初に今日の日付を選択したので、料金は 10rm と仮定します。しかし、それは 0 を示しています。その後、前のページに戻り、明日の日付を選択します。課金は 5rm であると想定されますが、前の記録セッションである 10rm が表示されます。戻って別の日付を選択すると、5rm、n などと表示されます。
間違ったイベントを使用していますか? またはそれはどうなりますか?どのように私はそれを解決することになっていますか?