저는 왜 이런 일이 발생했는지 완전히 당혹 스럽습니다. 몇 시간 동안이 작업을 망쳤으며, 나는 crazyyy가 될 것입니다! 체크 박스가 켜지거나 꺼져있을 때 DB를 업데이트하려고합니다. 성공 응답은 PHP 함수를 호출 할 때 비어 있지만 PHP를 추가 할 때마다 실패합니다. 참고 Laravel 3을 사용 중입니다. CSRF 필터링을 활성화하거나 비활성화하려고 시도했습니다.AJAX는 PHP 함수가 비어있을 때만 오류 500을 throw합니다.
내 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
));
}
'public function post_update() {'나는 post_update() {믿어야 만합니다. 클래스 내의 함수 인 경우 public 만 사용합니다. 이렇게하면 스크립트의 구문 분석 오류와 500 오류가 발생합니다. – Jasper
그것을 고친 후에, 그것은 공개적으로 또는 공개적으로 작동합니다. 나는 그 차이점을 확신 할 수 없다. – veksen