2017-09-05 1 views
0

Ich weiß nicht, wie Vollkalender-Ereignisse in meinem Symfony-Projekt zu aktualisieren oder zu löschen.So aktualisieren oder löschen Sie FullCalendar-Ereignis mit Symfony

Um ein neues Ereignis hinzuzufügen, öffne ich ein modales Fenster mit einem Formular, um ein neues Ereignis einzureichen und es in meine Datenbank einzufügen.

Das ist mein Controler (es funktioniert):

$datas = array(); 
    $form = $this->createFormBuilder($datas) 
     ->add('title', TextType::class) 
     ->add('startDate', TextType::class, array(
      'attr'=> array('class' => 'dateTimePicker'))) 
     ->add('endDate', TextType::class, array(
      'attr'=> array('class' => 'dateTimePicker'))) 
     ->add('backgroundColor', ChoiceType::class, array('choices' => $color)) 

     ->getForm(); 

    $form->handleRequest($request); 

    /** Création d'un nouvel évenement */ 
    if ($form->isSubmitted() && $form->isValid()) { 

     $title = $form->get('title')->getData(); 
     $start = new \DateTime($form->get('startDate')->getData()); 
     $end = new \DateTime($form->get('endDate')->getData()); 
     $backgroundColor = $form->get('backgroundColor')->getData(); 

     $event = new CalendarEvent(); 
     $event->setTitle($title); 
     $event->setStartDate($start); 
     $event->setEndDate($end); 
     $event->setBackgroundColor($backgroundColor); 

     $em = $this->getDoctrine()->getManager(); 
     $em->persist($event); 
     $em->flush(); 

     return $this->redirect($this->generateUrl('ma_lrm_accueil')); 
    } 

Ich weiß, dass Ereignisse zu aktualisieren, ich habe wie diese ein Javascript haben:

$(document).ready(function() { 
$('#calendar').fullCalendar({ 
    header: { 
     left: 'prev, next', 
     center: 'title', 
     right: 'month, agendaWeek, agendaDay' 
    }, 
    timezone: ('Europe/London'), 
    businessHours: { 
     start: '09:00', 
     end: '18:30', 
     dow: [1, 2, 3, 4, 5] 
    }, 
    allDaySlot: true, 
    defaultView: 'agendaWeek', 
    lazyFetching: true, 
    firstDay: 1, 
    selectable: true, 
    /*timeFormat: { 
     agenda: 'h:mmt', 
     '': 'h:mmt' 
    },*/ 
    editable: true, 
    eventDurationEditable: true, 
    events: 'http://localhost/ligne_rh/web/app_dev.php/admin/accueil/calendar', 

    eventResize: function(events) { 
     console.log("Entrée dans : eventResize"); 
     var start1 = events.start.format('Y-m-d\TH:i:s'); 
     var end1 = events.end.format('Y-m-d\TH:i:s'); 
     var xhr = $.ajax({ 
      type: "POST", 
      url: 'http://localhost/.../calendar/event/update', 
      data: 'title=' + events.title + '&start=' + start1 + '&end=' + end1 + '&id=' + events.id, 
      dataType: 'html', 
      success: function(data) { 
       window.location.reload(true); 
      }, 
      error: function() { 
       alert("..."); 
      }, 
     }); 
    }, 

}); 

Ich verstehe nicht, irgendetwas davon und ich habe keine Ahnung, wie mein Controller aussehen sollte.

Bitte HELFEN Sie mir ein Beispiel !! Ich bin Anfänger !! Danke!!!!

+0

was willst du wirklich? einige Fehler gehen? –

+0

Ich weiß nicht, wie meine updateAction aussehen sollte ?? sollte es JSON zurückgeben und wie ??? Ich verstehe nicht die Verbindung zwischen meinem js und meinem action controler – Moh

Antwort

0

sollten Sie

$em->merge($event); 

für und Aktualisierung verwenden bereits bestehende Einheit

$em->remove($event); 

Einheit zum Entfernen.

Vielleicht sollten Sie auch versuchen, verschiedene Controller-Aktionen (eventDeleteAction, eventCreateAction) zu erstellen, um CRUD-Operationen durchzuführen.

+0

Nur realisiert, dass es nicht sehr hilfreich ist, da Sie komplett neu zu programmieren und es ist wahrscheinlich, dass dieser Code von jemand anderem geschrieben wird. Ich glaube, Sie sollten mit folgenden Artikeln beginnen und https://symfony.com/doc/current/forms.html, https://symfony.com/doc/current/doctrine.html, https: //blog.intelligentbee. com/2015/01/19/symfony-2-forms-and-ajax/wenn du zumindest diesen Code ausführen könntest und mit grundlegenden Programmierbegriffen wie Konditionalen, Schleifen usw. vertraut bist. Als ich glaube, ich könnte Ihnen mit anderen Controllern Code helfen, wenn Sie irgendwelche Fragen in Bearbeitung bekommen. Hoffe das würde helfen! –

+0

ok danke !! genau weiß ich nicht, wie meine Handlung die Verbindung mit meinem Javascript machen sollte? – Moh

+0

Zunächst sollten Sie einige Steuerelemente in Ihrem HTML definieren, um Einfügungen und Löschungen zu verwalten (natürlich, wenn diese Operationen manuell vom Benutzer ausgeführt werden sollten). Fügen Sie dann einige onClick-Handler hinzu, um eine AJAX-Anforderung zu stellen, wenn Sie dies asynchron ausführen möchten. Sie sollten URLs angeben, die Ihre Controller in Ihren Ajax-Aufrufen auslösen, um Ihre Controller zum Laufen zu bringen. Ich glaube, Sie konnten erfolgreich jedes Wort googeln und detaillierte Erklärungen zu HTML-Steuerelementen, Javascript-Ereignissen und Ajax erhalten. Außerdem benötigen Sie Hilfe von routing.yml. –

Verwandte Themen