2016-10-29 5 views
1

Ich benutze Vollkalender, muss ich ein neues Ereignis erstellen, wenn Benutzer auf ein bestimmtes Datum klickt, verwende ich Laravel-Controller zum Speichern der Daten von Ajax Anfrage senden. Ich kann ein Ereignis im Kalender erstellen, aber ich kann die Daten nicht an den Controller senden und außerdem bleibt die Browser-Registerkarte nach dem Erstellen des Ereignisses hängen. Jeder kann korrigieren, wo ich falsch liege? oder bieten eine bessere Lösung für das Problem.Send Ajax Daten zu Laravel Controller

Dies ist meine Route-Datei, ich habe versucht, beide zu bekommen und Post, aber keiner funktioniert.

Route::get('/projects/calendar/store','[email protected]'); 

Dies ist der Controller, es verarbeitet nur Daten, die von einer Ajax-Anfrage gesendet werden, aber keine Ansicht.

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 
]); 
} 
+0

Zunächst müssen Sie Ihre Route zu einem Post Route ändern. In Ihrem Ajax-Objekt haben Sie den Typ auf POST gesetzt, während Sie Daten posten. Sie müssen das Gleiche mit Ihrer Route tun. Zweitens haben Sie versucht, Ihre Netzwerk-Registerkarte und dd ($ Anfrage) innerhalb Ihrer CalendarStore-Methode zu überprüfen? Wenn nicht, versuche dies und schau, ob du zu deiner Controller-Methode kommst. Drittens fügen Sie Ihrem Ajax-Objekt einen Fehlerschlüssel hinzu, der eine Schließung unter 'success: function() {...}' auf die gleiche Weise akzeptiert und 'error: function (response) {console.log ('here', Antwort); } ', um zu sehen, wenn beim Posten Fehler auftreten. –

+0

Was sind die Fehler? Es muss ein AJAX-Fehler oder Apache-Protokollfehler protokolliert werden. –

Antwort

1

Ihre Erklärung Ihrer Ajax data Parameter wie folgt ersetzen:

//creates a new event on the calendar 
eventData = { 
    "title": title, 
    "start": start, 
    "end": end, 
    "allDay": allDay 
}; 
+0

Angebotseigenschaften sind nur für die ungültigen Bezeichner erforderlich. Ich denke nicht, dass das das Problem ist, da muss noch etwas anderes sein. –

0

Ich habe die folgenden Änderungen: und seine wie erwartet, sobald/Benutzer klicken, wird es die auf die spezifischen Tag/Tag wählt Fragen Sie nach Titel und und speichern Sie das Ereignis in der Datenbank.

select: function(start, end, allDay) { 
    var title = prompt('Are u sure you want to apply for job? Yes/No:');// Event Title: 
    var start_time = moment(start).format(); 
    var end_time = moment(end).format(); //onclick get date 
    var eventData; 
    if (title) { 
     eventData = { 
      title: title, 
      start: start, 
      end: end, 
      allDay: allDay 
     }; 
     $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true 

     $.ajax({ 
      type: 'GET',//POST changed to GET 
      url: "/projects/calendar/store", // your url             
      data: { //event data from global variable 
       title: event_name, 
       start: start_time, 
       end: end_time, 
       event_id:event_id 
      }, 
      beforeSend: function (request) { 
       return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf-token']").attr('content')); 
      }, 
      success: function(response) { 
       console.log(response); 
      } 
     }); 
    } 
    $('#calendar').fullCalendar('unselect'); 
}, 

aktualisiert Strecke

Route::get('/projects/calendar/store','[email protected]'); 

Aktualisiert-Controller

public function calendarStore(Request $request) 
{ 
    $userId = Auth::user()->id; 
    $event_title =$request->get('title'); 
    $start =$request->input('start'); 
    $end =$request->input('end'); 
    $project_id= $request->input('event_id');  


    $calendar_event = Calendar::create([ 
     'user_id' => $userId, 
     'project_id' => $project_id, 
     'event_title' => $event_title, 
     'start_date' =>$start, 
     'end_date' => $end 
    ]);  
    return $calendar->all(); 
} 
Verwandte Themen