爲什麼會出現這種情況,我完全不解這個問題,我一直在搞這個工作幾個小時,我要瘋了!我試圖在複選框打開或關閉時更新我的數據庫。如果我所調用的PHP函數爲空,但是在添加PHP時失敗,則成功響應將起作用。注意我在Laravel 3上,我嘗試啓用或禁用CSRF篩選,但沒有運氣。AJAX僅在PHP函數爲空時拋出錯誤500
我的JS:
$seenTD = $('td.seen_by_user');
$seenTD.each(function() {
$this = $(this);
var $seenLabel = $this.find('label');
var $seenInput = $this.find(':checkbox');
$seenInput.change(function() {
var _csrf = $('input[name="csrf_token"]').val();
var chkName = $(this).attr('name');
var checkVal = $(':checkbox[name='+chkName+']').prop('checked'); //true or false
var id = $this.find('input[name="reminder_id"]').val();
$.ajax({
url: 'update',
type: 'POST',
data: 'seen='+checkVal+'&reminder_id='+id+'&csrf_token='+_csrf,
success: function(data) {
console.log(data);
if($seenInput.is(':checked')) {
$seenLabel.removeClass('unchecked').addClass('checked');
$seenLabel.find('span').text('Oui');
}
else {
$seenLabel.removeClass('checked').addClass('unchecked');
$seenLabel.find('span').text('Non');
}
}
});
});
});
我的PHP
public function post_update() {
$request = Request::instance();
$content = $request->getContent();
$id = $content['id'];
$seen = $content['seen'];
if($seen == 'true') {
$seen = 1;
}
if($seen == 'false') {
$seen = 0;
}
DB::table('reminders')->where('id', '=', $id)->update(
array(
'seen_by_user' => $seen
));
}
'公共職能post_update(){'應該'功能post_update(){'我相信。如果只是一個類中的函數,你只能使用public。這將導致腳本的解析錯誤和500錯誤。 – Jasper
修復後,它可以與公共或不公開。然而,我不確定這種差異。 – veksen