11
votes

Intégrer JQuery FullCalendar dans le site Web PHP

Je voudrais intégrer le site FullCalendar JQuery dans mon site Web PHP, mais je ne sais pas comment gérer l'événement et comment utiliser les données JSON de MySQL.

Tout conseil serait apprécié.


5 commentaires

Est-ce ce calendrier que vous parlez de? redredred.com.au/projects/jquery-week-calendar


Si c'est vraiment urgent, vous devriez essayer le canal IRC Blog. jquery.com/2007/02/17/Le-jquery- tirl-channel ...


Pourquoi veillerons-nous si la tâche est urgente? Pour moi, c'est généralement une raison pas pour répondre à la question. Si vous avez besoin de quelque chose fait rapidement, trouvez-vous un soutien payé.


@elzapp oui, c'est juste ce plugin.


@DURROTH Oui, vous avez raison. Je le souffre depuis plusieurs jours. Et je suis ici pour plus d'idées et de conseils. J'apprécie beaucoup vos suggestions.


11 Réponses :


15
votes

Assurez-vous que votre PHP peut émettre le F CORE Collant HTML :

<?php

   $year = date('Y'); 
   $month = date('m');

   echo json_encode(array( 

      array( 
         'id' => 1, 
         'title' => "Event1", 
         'start' => "$year-$month-10", 
         'url' => "http://yahoo.com/" 
      ), 

      array( 
         'id' => 2, 
         'title' => "Event2", 
         'start' => "$year-$month-20", 
         'end' => "$year-$month-22", 
         'url' => "http://yahoo.com/" 
      ) 

   ));

?>


2 commentaires

Merci beaucoup pour votre commentaire. Mais je pense que vous avez un malentendu ou que je ne l'ai pas décrit très clairement. Je veux ajouter le plugin JQuery Weekcalendar et il y a un échantillon pour cela. Tout est en session là-bas. Mais je veux que cela fonctionne avec la base de données MySQL. Merci beaucoup!!!!!!!


Selon le serveur, assurez-vous que vous avez date_default_timezone_set ('America / Your_TZ'); avant la date (xxx) appel



0
votes

Je ne connais pas JQuery. Mais je pense le problème est que vous ne prenez pas compte de la nature asynchrone de Ajax.

Sauf si FullCalendar () fait quelque chose de très étrange (incendie une demande Ajax et attend la réponse), vous ne pourrez peut-être pas utiliser une source externe dans la fonction de cette façon, car FullCalendar aura fini de fonctionner par le Temps une réponse revient du serveur.

Il ne semble pas être un exemple clair de ce que vous essayez de faire sur la page Web du calendrier de la semaine, mais je suis sûr que ce dont vous avez besoin est de créer le calendrier sans les événements, mais avec un rappel défini pour ajouter des événements ; et puis d'une manière ou d'une autre incendie de l'appel externe.


1 commentaires

Merci pour votre message. Vous avez un peu indiqué mon problème. En fait, je ne peux pas ajouter / éditer / supprimer les événements et ne peut pas saisir les données de MySQL de la manière de JSON. Je vais essayer d'arranger et de le résoudre. Et merci.



0
votes

Je pense que vous avez le même problème que j'ai. J'ai effectué une recherche sur le Web en essayant de déterminer comment configurer la dateTime de sorte que le FullCalendar Javascript l'interpréterait correctement. (Cette page avait de bonnes indices à cela: http://blog.stevenlevithan.com/ Archives / Date-Time-Format ).

J'ai posté ceci sur la page de problèmes FullCalendar en espérant que le créateur ou quiconque irait de la lumière sur le sujet.

==== ================= Description ===========================

Quelles étapes vont reproduire le problème?

  1. Fetch Events utilisant JSON
  2. Utilisez cette chaîne JSON:

    xxx

    Quelle est la sortie attendue? Que voyez-vous à la place?

    • Je m'attends à ce que l'événement apparaisse dans le calendrier avec l'heure de début 10h00 et Temps de fin 11:01.
    • Il apparaît comme un événement de toute la journée.

      Quelle version du produit utilisez-vous? Sur quel système d'exploitation?

      • FullCalendar V1.4.1
      • Windows XP

        Veuillez fournir des informations supplémentaires ci-dessous.

        J'utilise une page ASPX pour récupérer les événements du calendrier. Je suppose que c'est que Il y a quelque chose qui ne va pas avec le format de l'objet JavaScript DateTime que je revenais dans le JSON et que cela provoque le FullCalendar à Interpréter les événements comme FulldayEvents . Le format que j'envoie dans le JSON est: 2009-11-17T11: 01: 00 .


0 commentaires

3
votes

J'ai eu le même problème et je viens de découvrir comment le faire fonctionner. Voici le code que vous devez utiliser dans votre fichier PHP:

$query = "select * from events where accountNo = '$accountNo'";
$res = mysql_query($query) or die(mysql_error());
$events = array();
while ($row = mysql_fetch_assoc($res)) {
    $start = "2010-01-08T08:30"";//Here you have to format data from DB like this.
    $end = "2010-01-08T08:30";//This format works fine
    $title = $row['firstName']." ".$row['lastName'];
    $eventsArray['id'] =  $row['id'];
    $eventsArray['title'] = $title;
    $eventsArray['start'] = $start;
    $eventsArray['end'] = $end;
    $eventsArray['allDay'] = "";
    $events[] = $eventsArray;
}


echo json_encode($events);


0 commentaires

9
votes

"2010-02-11 11:00:00" FORMAT fonctionne bien pour spécifier le temps pour moi (sans "T" à l'intérieur), La clé de la solution consiste à définir l'attribut "Allday" d'un événement pour vider la chaîne.


1 commentaires

Ooh merci mec ça sauve moi



0
votes

Hey, je n'ai pas utilisé votre code ci-dessus, mais dans json_events.php le par défaut, il y a "[" Dans le début de la sortie PHP et "]" à la fin .


0 commentaires

0
votes

Cet exemple fonctionne:

$sql= "SELECT id, title, start, DATE_FORMAT(start, '%Y-%m-%dT%H:%i' ) AS startDate
FROM kalender
ORDER BY startDate DESC";
$res = mysql_db_query($db, $sql, $conn) or die(mysql_error());

$events = array();
//important ! $start = "2010-05-10T08:30";  iso8601 format !!
while ($row = mysql_fetch_assoc($res)) {
   $eventArray['id'] = $row['id'];
   $eventArray['title'] =  $row['title'];
   $eventArray['start'] = $row['startDate'];
   $events[] = $eventArray;
}
echo json_encode($events);


0 commentaires

1
votes

La sortie pour echo Un événement doit être dans ce format:

$('#calendar').fullCalendar({
  events: [{
    title: 'Awesome Event Title', 
    start: new Date($start_year, $start_month, $start_day),     or   end: new Date(y, m, d),
    end: new Date($end_year, $end_month, $end_day)    or   end: new Date(y, m, d)
  }]
});


0 commentaires

1
votes

Implémentez-le de cette façon et cela fonctionne bien

$result = mysql_query("SELECT * FROM eventoform",$conexion);
        $array = array();
        $i = 0;
        while ($row = mysql_fetch_array($result)) {
            $array[$i]=array("id"=>$row["id_evento"],"title"=>$row["NombreEvento"],"start"=>$row["FechaInicio"]." ".$row["HoraInicio"],"allDay"=>false,"description"=>$row["description"],"editable"=>true);
            $i++;
        }

 echo json_encode($array);


0 commentaires

3
votes

en PHP - JSON:

$eventsArray['allDay'] = "false"; //doesn't work

$eventsArray['allDay'] = false; //did the trick to have a NON FULL DAY correctly rendered!!


0 commentaires

0
votes

Juste au cas où il y a une personne utilisant des rails avec JBuilder pour générer l'aliment JSON ... vous devez Ajoutez l'attribut Allday fort> ...

json.array!(@resubmissions) do |object|
  json.id object.id
  json.title "WVL - #{object.to_s}"
  json.start object.resubmission_at.to_i
  json.allDay false
end


0 commentaires