0

このWebサイトのJQueryeventcalendarプラグインを使用しています。

出力されたデータをフィルタリングできるように、変数をJSONに送信する方法を知っている人はいますか?リンクで送信できますか、それともAJAXを使用する必要がありますか?任意のポインタをいただければ幸いです。前もって感謝します。

<div id="cal"></div>

$("#cal").eventCalendar({
  // link to events json
  eventsjson: 'file.php' 
});

file.php

<?php
header('Content-type: text/json');

$var = $_GET["var"];

$sqldata = mysql_query('
SELECT
UNIX_TIMESTAMP(start_date) AS date,
employee AS title, 
days AS description,
UNIX_TIMESTAMP(end_date) AS url
FROM requests WHERE approved = 1
');

$posts = array();

while($row = mysql_fetch_assoc($sqldata))
{
    $row['date'] = $row['date'].'000';
    $row['url'] = $row['url'].'000';
    $row['description'] = $row['description'].' Days';
    $posts[] = $row;
}
mysql_free_result($sqldata);
die(json_encode($posts));

?>


function getEvents(limit, year, month, day, direction) {
    var limit = limit || 0;
    var year = year || '';
    var day = day || '';

    // to avoid problem with january (month = 0)

    if (typeof month != 'undefined') {
        var month = month;
    } else {
        var month = '';
    }

    //var month = month || '';
    flags.wrap.find('.eventsCalendar-loading').fadeIn();

    if (eventsOpts.jsonData) {
        // user send a json in the plugin params
        eventsOpts.cacheJson = true;

        flags.eventsJson = eventsOpts.jsonData;
        getEventsData(flags.eventsJson, limit, year, month, day, direction);

    } else if (!eventsOpts.cacheJson || !direction) {
        // first load: load json and save it to future filters
        $.getJSON(eventsOpts.eventsjson + "?limit="+limit+"&year="+year+"&month="+month+"&day="+day, function(data) {
            flags.eventsJson = data; // save data to future filters
            getEventsData(flags.eventsJson, limit, year, month, day, direction);
        }).error(function() { 
            showError("error getting json: ");
        });
    } else {
        // filter previus saved json
        getEventsData(flags.eventsJson, limit, year, month, day, direction);
    }
}
4

1 に答える 1

2

このプラグインのコードは次のとおりです。

$.getJSON(eventsOpts.eventsjson + "?limit="+limit+"&year="+year+"&month="+month+"&day="+day, function(data)...

つまり、リンクにパラメータを追加すると、機能しなくなります...

パラメータの存在をテストするためにプラグインコードを少し変更してから、次のような内部パラメータを追加する必要があります。

var URL = eventsOpts.eventsjson;
URL += (eventsOpts.eventsjson.indexOf('?') < 0) ? '?' : '&';
URL += "limit="+limit+"&year="+year+"&month="+month+"&day="+day;
$.getJSON(URL, function(data)... 
于 2012-09-18T11:40:45.283 に答える