Я просматривал Stackoverflow в течение последних нескольких часов, ни один из вопросов, которые не являются похожими, отвечает на вопрос, который я ищу. Был один, однако выбранный ответ был тем, что я уже не пробовал.
Javascript с PHP Foreach
Мне нужно динамически создать массив переменных JavaScript избаза данных. У меня нет проблем с созданием массивов JSON, которые полезны в других областях моего сайта, однако формат, необходимый для плагина respiveCalendar, требует уникального формата, который я не могу имитировать.
Мой код выводит этот тип ответа
$(".responsive-calendar").responsiveCalendar({
time: '<?php echo $today; ?>',
events: {
"2014-04-30": {"number": 1, "badgeClass": "badge-warning", "url": "http://w3widgets.com/responsive-calendar"},
"2013-04-26": {"number": 1, "badgeClass": "badge-warning", "url": "http://w3widgets.com"},
"2013-05-03": {"number": 1, "badgeClass": "badge-error"},
"2013-06-12": {}}
});
Я использую следующий скрипт:
$sql = $conn->prepare('SELECT date,total,url,status FROM SQLTABLE ORDER BY date DESC');
$sql->execute();
$json = [];
$events = $sql->fetchAll(PDO::FETCH_ASSOC);
foreach ($events as $e) {
$json[] = array(
date("Y-m-d", strtotime($e[date])) => array(
'number'=> $e[number],
'url'=> $e[url],
'status'=> ($e[status] == 1 ? true : false)
));
}
$events = json_encode($json, JSON_UNESCAPED_SLASHES);
echo $events;
$conn->close();
Это результат, который я получаю
[{
"2017-09-05": {
"number": 10,
"url": "http",
"active": true
}
}, {
"2017-09-05": {
"number": 7,
"url": "http",
"active": false
}
},
...
{
"2017-09-05": {
"number": 15,
"url": "http",
"active": false
}
}, {
"2017-09-05": {
"number": 1,
"url": "http",
"active": false
}
}]
Я пытаюсь выполнить это (ниже), которое затем будет присвоено переменной объекта внутри плагина, называемого событиями. Я попробовал сделать это с квадратными скобками, например, о том, как выполняются некоторые передачи данных Ajax, но это сломало его, поэтому я не уверен, какое здесь используется синтаксическое правило. не заключайте в квадратные скобки и обратите внимание, что первая часть каждого события стоит отдельно без какого-либо идентификатора, такого как номер, URL, статус и т. д. Это просто поле даты. Насколько я понимаю, поле даты служит, как мне кажется, значением индекса подмассива.
Заранее спасибо, очень ценю сообщество StackOverflow!