【发布时间】:2022-01-08 16:30:54
【问题描述】:
我有以下使用 fullCalendar 3 的日历
$(document).ready(function() {
$('#calendar').fullCalendar({
defaultDate: '2021-12-02',
eventLimit: true, // allow "more" link when too many events
events: [{
title: 'All Day Event',
start: '2021-12-02'
},
{
title: 'Long Event',
start: '2021-12-02',
end: '2021-12-4'
},
{
title: 'Click for Google',
url: 'https://google.com/',
start: '2021-12-24'
}
]
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.7/semantic.min.js"></script>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.js"></script>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.7/semantic.min.css" crossorigin="anonymous">
<title>Sample</title>
</head>
<body>
<div class="ui container">
<div class="ui grid">
<div class="ui sixteen column">
<div id="calendar"></div>
</div>
</div>
</div>
</body>
</html>
现在我有一个PHP 数组,如下所示
$arrayDate = [
"title" => "SG-12345-0 : xx, yy",
"start" => "2021-12-02"
];
我通过如下修改初始jQuery 代码将此数组传递给events
$(document).ready(function() {
var jArray = <?php echo json_encode($arrayDate); ?>;
console.log(jArray);
$('#calendar').fullCalendar({
defaultDate: '2021-12-02',
eventLimit: true, // allow "more" link when too many events
events: [jArray]
});
});
它工作正常。但我需要知道的是,如果我的 php 数组包含多个开始日期和标题,我该如何传递多个 title 和 start 键?
例如:对于像下面这样的数组
$arrayDate = [
"2021-12-02" => "SG-12345-0 : xx, yy",
"2021-12-03" => "SG-156645-0 : aa, bb",
"2021-12-02" => "SG-13435-0 : cc, dd",
"2021-12-04" => "SG-76864-0 : ee, ff"
];
【问题讨论】:
-
创建一个嵌套的PHP事件数组,并使用
JSON.parse解析JS中的数据。 -
如果我使用 PHP 嵌套数组,会是这样的
$arrayDate = ["title" => ["SG-12345-0 : xx, yy", "SG-156645-0 : aa, bb", "SG-13435-0 : cc, dd", "SG-76864-0 : ee, ff"], "start" => ["2021-12-02", "2021-12-03", "2021-12-02", "2021-12-04"]];。但是我怎样才能将它与JSON.parse链接起来?抱歉我对JSON.parse不是很熟悉 -
我也对
JSON.parse做了以下操作。var jArray = <?php echo json_encode($arrayDate); ?>; jArray = JSON.parse(jArray);。但是我又如何将它传递给events作为title和start? -
var jArray = JSON.parse(<?= json_encode($arrayDate); ?>);。但是,关联的 PHP 数组必须是嵌套的,不要将内部数组包裹在字符串中。 -
旁注:你知道你的页面中有两个版本的jQuery吗?这有可能导致意想不到的问题。摆脱一个版本。
标签: javascript php jquery fullcalendar fullcalendar-3