Huhu! Wieder mal ich mit einer "spezialfrage"...:
ich habe auf EINER Seite
- eine Tabelle (https://www.datatables.net/) und
- einen Kalender (bootstrap-year-calendar).
Diese beiden Objekte benutze ich um Daten einmal in tabellarischer Form und einmal in Kalenderform darzustellen.
Der User hat einen Kalender-Button, und mit Click wird jeweils 1 oder 2 dargestellt (visibility).
Wenn die Seite lädt stelle ich als 1. die Tabelle dar.- Es wird jedoch im "Hintergrund" bereits das Kalender-Objekt "initialisiert" (aber bleibt ausgeblendet):
$(function() {
var currentYear = new Date().getFullYear();
$('#calendar').calendar({
enableContextMenu: true,
enableRangeSelection: true,
…
Jetzt habe ich das Problem, dass ich es nur hinbekommen habe, den Kalender mit Ajax-Daten zu befüllen, beim "yearChanged"-Event des Kalenders (so beschrieben vom Entwickler):
yearChanged: function(e) {
e.preventRendering = true;
$(e.target).append('<div style="text-align:center"><img src="./img/loading_spinner.gif" /></div>');
var jqTextToJson = {
"text json": function(jsonString) {
return JSON.parse(jsonString,
function(name, value) {
if (name === "startDate" || name === "endDate")
return new Date(value);
return value;
});
}
};
$.ajax({
dataType: "json",
url: "./getCalendarData.php?typ=calendar&id=" + $("#SelectKonto option:selected").val(),
converters: jqTextToJson,
success: function(dataSource) {
$(e.target).data('calendar').setDataSource(dataSource);
}
});
}
Das funktioniert nun auch - halt eben nur wenn der User im Kalender AKTIV das Jahr wechselt.
Ich möchte jedoch die Daten bereits früher laden (also beim Initialisieren des Kalenders).
Oder noch besser: Beim Klick auf den "Kalender"-Button, der von der Listenansicht zum Kalender wechselt. --> Dann direkt refreshen.
Kann mir jemand helfen?
1000 dank vorab