2013-02-10 2 views
0

Я использую следующий JQuery календарь: https://github.com/MrHus/jquery-monthly-ical/tree/Наполнение календаря с PHP Еогеаспом кодом

После документации, он говорит мне, что даты должны быть введены так:

eventdates: [{"date": "2009-03-21", "title": "My birthday", "desc": "Its my birthday!"}, 
      {"date": "yyyy-01-01", "title": "New Year", "desc": "Its a new year!"}, 
      {"date": "2009-mm-01", "title": "New Month", "desc": "First day of the new month!"}, 
      {"date": "2010-mm-01", "title": "New Month", "desc": "First day of the new month!"}, 
      {"date": "2010-09-01", "title": "Convention", "desc": "September convention."}, 
      {"date": "2010-09-02", "title": "Convention", "desc": "September convention day two."}, 
      {"date": "2010-mm-01", "title": "Towl", "desc": "Dont forget to bring a towl."}  
      ] 

Однако, я бы как заполнять вышеуказанные массивы с помощью переменных PHP, с помощью инструкции foreach. У меня это, однако он не работает, никаких ошибок, никаких предупреждений, но не отображается событие:

 <?php 
     foreach($events as $event) 
     { 
     ?> 
      eventdates: [{"date": "<?php date('Y/m/d') ?>", "title": "<?php $event->title ?>", "desc": "<a href="<?php echo SITE_URL ?>/index.php/events/get_event?id=<?php $event->id ?>">Details/Signups</a>"},] 
     <?php 
     } 
     ?> 

Это предыдущий код вне календаря, а внутри таблицы я, и это работает:

<?php 
if(!$events) 
{ 
    echo 'No Upcoming Events'; 
} 
else 
{ 
    ?> 
<center> 
    <table border="1px" width="80%"> 
     <tr> 
      <td width="25%"><b>Date:</b></td> 
      <td width="60%"><b>Event:</b></td> 
      <td><b>Details/Signups</b></td> 
     </tr> 
      <?php 
      foreach($events as $event) 
      { 
       if($event->active == '2') 
       { 
        continue; 
       } 
     echo '<tr><td>'.date('n/j/Y', strtotime($event->date)).'</td>'; 
     echo '<td>'.$event->title.'</td>'; 
     echo '<td><a href="'.SITE_URL.'/index.php/events/get_event?id='.$event->id.'">Details/Signups</a></td></tr>'; 
    } 
    ?> 
    </table> 
</center> 
    <?php 
} 
?> 

код внутри .tpl файла, который показан с помощью .class.php файла. Внутри него все запросы для запуска необходимых переменных.

ответ

1

Это следует сделать это:

$dates = array(); 

// build an array with that data 
foreach($events as $event) 
    $dates[] = (object)array(
    'date' => date('Y/m/d'), 
    'title' => $event->title, 
    'desc' => sprintf('<a href="%s/index.php/events/get_event?id=%s">Details/Signups</a>', SITE_URL, $event->id), 
); 

?> 

eventdates: 

<?php print json_encode($dates); // print it as a json string ?> 
+0

Это показывает календарь, но он по-прежнему не отображаются события. – zzwyb89

+0

Добавлен в первое сообщение. – zzwyb89

+0

http://pastebin.com/Qc8GByBE. Сначала я попробовал ваше предложение: ''date' => date ('Y/m/d')', а затем вернул его в мою версию, чтобы увидеть, будет ли он работать. – zzwyb89

Смежные вопросы