我正在創建一個工作計劃程序並希望通過每週日曆進行分頁。我有一週的當前周和左雙箭頭的點擊,我收穫了顯示一週的週數,並與該腳本發送到控制器:PHP:從AJAX中的星期數開始的日期
(function() {
$(document).on('click', '#navrow_prev', function(e){
var curr_week = $('#display_week').text();
var prev_week = parseInt(curr_week) - 1;
$('#display_week').empty().text(prev_week);
$.ajax({
url: "<?= site_url('ajax/get_monday_from_week'); ?>",
type: "POST",
data: { week: prev_week },
success: function(msg){
//$('#display_monday').empty().text(msg);
alert(msg);
} // end success
});
});
})(); // end self-invoking anonymous function
Ajax調用之前的部分工作正常。然而,我沒有得到警報(我正在尋找可以改變當週星期一和星期日的顯示日期的響應),並且FireBug告訴我在下面的控制器功能中有500個錯誤。這是我從多個Google搜索中找到的代碼,我不明白錯誤在哪裏。
public function get_monday_from_week(){
$week = $this->input->post('week');
$year = date('Y');
if((int)$week < 10){ $week = '0'.(string)$week; } else { $week = (string)$week; }
echo date('Y-m-d', strtotime($year."W".$week);
} // end get_monday_from_week function
/*-----------------------------------------------------*/
更新:我現在在控制器中使用它,比我預期的要晚一週。我用我的編輯搞砸了代碼嗎?
public function get_monday_from_week(){
$week = $this->input->post('week');
$year = date('Y');
$time = strtotime("1 January $year", time());
$day = date('w', $time);
$time += ((7*$week)+1-$day)*24*3600;
echo date('Y-m-d', $time);
} // end get_monday_from_week function
/*-----------------------------------------------------*/
我目前發佈了一個「46」(根據FireBug)並沒有得到任何迴應。任何幫助表示讚賞。
既然你得到500錯誤,很可能是你的JavaScript無關,與這個(假設你當然已經驗證數據正按預期在AJAX請求中發送)。您是否嘗試過在javascript環境之外對您的端點進行相同的確切請求? –
我得到了通用錯誤500頁面。我正在嘗試用Shuvo的代碼重寫AJAX控制器函數。 – jgravois
您是否第一次查看服務器錯誤日誌以查看可能導致500錯誤的原因? –