Цикл jQuery, fullCalendar и PHP - конечное рендеринг события прерывания запятой в IE8 - PullRequest
0 голосов
/ 09 апреля 2011

Я использую этот код PHP / CodeIgniter для генерации событий в fullCalendar

$('#calendar').fullCalendar({

        events: [
                <?php foreach($cal_data as $row): ?>
                    {   
                  title : '<?php echo $row->pt_name . ' ' . $row->value_2; ?>',
                  start : '<?php echo $row->date . 'T' . $row->time .'Z'; ?>',
                  url   : '<?php echo base_url() . 'events/events_edit/' . $row->record_id; ?>',
                  color: '<?php echo $row->value_4; ?>'
                    }, //  <=== this comma is the problem
                <?php endforeach; ?>
                ],
etc...

Как вы можете видеть в строке 10, есть последняя запятая, которая закрывает данные события, и цикл продолжается. Типичный результат будет:

events: [
        {   
              title : 'Test1',
          start : '2011-04-07T08:45:00Z',
          url   : http://example.com/events/events_edit/81',
          color: '#ed9d2b'
                        },
        {   
          title : 'Test2',
          start : '2011-04-09T08:45:00Z',
          url   : http://example.com/events/events_edit/82',
          color: '#ed9d2b'
                        }, // <======= trailing comma

К сожалению, запятая из последнего события нарушает рендеринг в IE8 (события хорошо отображаются на Cr, FF, Saf).

Есть предложения, как решить эту проблему?

1 Ответ

1 голос
/ 09 апреля 2011

Похоже, вы создаете JSON.Почему бы на самом деле, скажем, не собрать JSON?Измените свой код, чтобы построить многомерный массив вместо вывода.Вы хотели бы иметь структуру, подобную

$stuff = array(
    'events' => array(
        0 => array(
            'title' => ...,
            'start' => ...
            'url' => ...
            'color' => ...
        ),
        // etc
    ),
    // etc
));

Создавая данные отдельно от их выдачи, вы можете убедиться, что они правильны для начала, и позволить кодировщику JSON беспокоиться о синтаксисе:

$('#calendar').fullCalendar(<?php echo json_encode($stuff); ?>);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...