2016-07-11 29 views
0

Ich versuche Kalenderereignisse von mysql db mit Fullcalendar, PHP und angularjs zu bekommen.AngularJS FullCalendar erhalten Ereignisse von ID

HTTP

<div ng-controller="calController" ng-show="tab4"> 
    <div id="calendar" ui-calendar="uiConfig.calendar" ng-model="eventSources" calendar="myCalendar"> 
    </div> 
</div> 

Mein conroller:

.controller('calController', ['$rootScope', '$scope', '$http', 'uiCalendarConfig', function ($rootScope, $scope, $http, uiCalendarConfig) { 

var user = $rootScope.userID; 

$scope.eventSources = { 
    url: 'php/events.php?agentID=' + user 
}; 

$scope.uiConfig = { 
    calendar: { 
     height: 300, 
     editable: false, 
     allDay: false, 
     header: { 
      left: 'title', 
      center: '', 
      right: 'agendaWeek prev,next' 
     } 
    } 
};}]); 

Meine PHP:

$sql="SELECT * FROM `Events`";$sql = $con->prepare($sql);$sql->execute();$results=$sql->fetchAll(PDO::FETCH_ASSOC); $json=json_encode($results); 

Im die Ergebnisse in meinem Kalender bekommen, aber sie alle die Ergebnisse in der DB. Wahrscheinlich, weil die Statemnt select * from events...

In der Steuerung können Sie sehen, dass ich die URL mit meinem Parameter "Benutzer" übergeben, aber dies hat keine Auswirkungen auf die Rückkehr des PHP-Skript.

Also meine Frage ist, wie gebe ich nur ein bestimmtes Benutzer Ereignisse und nicht alle Ereignisse zurück?

Ich denke, meine PHP-Datei bearbeitet werden muss, aber ich weiß nicht, was zu tun ..

EDIT:

Ive versuchte auch die Ereignisse in ein Array bekommen und dann die Bindung an eventSources:

Dies funktioniert gut, um Ereignisse mit einer ID zu bekommen, aber jetzt sehe ich nicht die Ereignisse im Kalender.

console.log("events", events); 
console.log("sources", $scope.eventSources); 

Der Ausgang für die oben ist:

enter image description here

Warum wouldnt Ereignisse im Kalender nach oben mit einem Array werden angezeigt? Jede Hilfe wäre toll.

Dank

+0

Wrap off Anführungszeichen Tabellennamen verwenden Sie stattdessen Graviszeichen bilden – Saty

Antwort

0

Mit etwas Fehlerbehebung fand ich, dass der PHP-Skript, wenn der Kalender geladen wurde gerufen werden muß.

Einmal tat ich dies konnte ich die Ereignisse im Kalender, um zu sehen:

.controller('calController', ['$rootScope', '$scope', '$http', 'uiCalendarConfig', function ($rootScope, $scope, $http, uiCalendarConfig) { 

var user = $rootScope.userID; 
var isFirstTime = true; 
var events = []; 

$scope.getEvents = function() { 
    $http.post('php/events.php', { 
     'user': user 
    }).success(function (data) { 
     //events = data; 
     angular.forEach(data, function (value) { 
      events.push({ 
       start: value.start, 
       end: value.end 
      }); 
     }); 

    }); 
} 

$scope.eventSources = [events]; 

$scope.uiConfig = { 
    calendar: { 
     height: 300, 
     editable: false, 
     header: { 
      left: 'title', 
      center: '', 
      right: 'month basicWeek basicDay agendaWeek agendaDay prev,next' 
     }, 
     eventAfterAllRender: function() { 
      if ($scope.eventSources.length > 0 && isFirstTime) { 
       isFirstTime = false; 
       $scope.getEvents(); 
      } 

     } 
    } 
};}]);