私はfullcalendarを使用しています。ユーザーが特定の日付をクリックしたときに新しいイベントを作成する必要があり、Laravelコントローラを使用してAjaxリクエストでデータを保存しています。私はカレンダーでイベントを作成することができますが、イベントを作成した後でコントローラにデータを送信できず、さらにブラウザタブがフリーズします。誰でも私が間違っている場所を修正できますか?問題の解決策を提供することができます。AjaxデータをLaravelコントローラに送信
select: function(start, end, allDay) {
var title = event_name;// Event Title:
var eventData;
if (title) {
eventData = { //creates a new event on the calendar
title: title,
start: start,
end: end,
allDay: allDay
};
$('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true
$.ajax({
data:eventData,
type: 'POST',
url:"/projects/calendar/store", // your url
beforeSend: function (request) {
return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content'));
},
success: function(response) {
console.log(response);
}
});
}
$('#calendar').fullCalendar('unselect');
},
これは私のルートファイルです。取得と送信の両方を試みましたが、動作していません。
Route::get('/projects/calendar/store','[email protected]');
これはコントローラで、ajaxリクエストで送信されたデータのみを処理しますが、表示はしません。
public function calendarStore(Request $request)
{
$calendar = new Calendar;
Input::all();
$userId = Auth::user()->id;
$event_title =$request->input('title');
$start =$request->input('start');
$end =$request->input('end');
$calendar_event = Calendar::create([
'user_id' => $userId, // I can get the user ID
'project_id' => 2,
'event_title' => $event_title,
'start_date' =>$start,
'end_date' => $end
]);
}
を更新しました
は、まず、あなたはポストルートにあなたのルートを変更する必要があります。あなたのAjaxオブジェクト内では、データをポストしているときにタイプをPOSTに設定していますが、ルートでも同じことをしなければなりません。 第2に、あなたのカレンダーストアメソッド内でネットワークタブとdd($ request)をチェックしてみましたか?これを試しておらず、あなたのコントローラメソッドに到達するかどうかを確認してください。 第3に、同じ方法で 'success:function(){...}'の下にクロージャを受け入れるajaxオブジェクトにエラーキーを追加し、 'error:function(response){console.log( 'here'応答); } 'を使用して、投稿時にエラーが発生しているかどうかを確認します。 –
エラーは何ですか?ログに記録されるAJAXエラーまたはApacheログエラーがなければなりません。 –