Swój problem opisałem dokładnie w dziale PHP w temacie, ale teraz podejrzewam, że zagadnienie jest problemem współpracy kodu JS z PHP:
Mój problem jest następujący - jest wywołanie kodu Fullcalendar do rysowania kalendarza na stronie - skrypt wywołuje plik load.php jak w poniższym fragmencie
$(document).ready(function() {
var initialLocaleCode = 'pl';
var calendar = $('#calendar').fullCalendar({
contentHeight: 1340,
minTime: '8:00',
maxTime: '24:00',
slotDuration: '00:15:00',
snapDuration: '00:15:00',
locale: initialLocaleCode,
timezone: 'Europe/Warsaw',
editable:true,
header:{
left:'prev,next today',
center:'title',
right:'month,agendaWeek,agendaDay'
},
events: 'blade_packs/system_fullcalendar/load.php',
Plik 'blade_packs/system_fullcalendar/load.php' zawiera odwołanie do bazy MySQL, skąd pobierane są dane spotkań do terminarza, a sam plik działa bez problemu, gdy dotyczy to MySQL'a i wygląda on tak:
$connect = new PDO('mysql:host=localhost;dbname=testing', 'root', '');
$data = array();
$query = "SELECT * FROM events ORDER BY id";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
{
$data[] = array(
'id' => $row["id"],
'title' => $row["title"],
'start' => $row["start_event"],
'end' => $row["end_event"]
);
}
echo json_encode($data);
Jeśli jednak uzyskuję tablicę json $data w inny sposób, z plikowej bazy danych, oraz w pliku load.php odwołam się do innego pliku php by np. pobrać dane z pliku tekstowego, skrypt rysuje pusty kalendarz, ignorując tablicę $data i jej identyczną zawartość jak z MySQL.
Każdy kod PHP w load.php wywoływany przez skrypt cokolwiek obliczający, jest zwyczajnie pomijany i ignorowany, jakby go nie było, i to jest dla mnie już zagadką.
Jak to jest w JS, że bez problemu działa przekazywanie danych otrzymanych z MySQL'a, a inny rodzaj danych nie jest przez skrypt akceptowane?
Weźmy dla przykładu definicję samej tablicy w pliku load.php, np.
$data[] = array('id'=>'9','title'=>'Maciej','start'=>'2018-02-03 07:00:00','end'=>'2018-02-04 06:00:00','uid'=>'aocvllmbd0d882pq17ksj8lc4h','owner'=>'Maciej','color'=>'red' );
Taka jedna linijka w pliku load.php "wyłącza" i blokuje automatycznie wyświetlanie danych w kalendarzu, a pozyskiwane identyczne dane z bazy MySQL'a są przekazywane do skryptu i widoczne bez problemu. Proszę o pomoc i podpowiedź, bo utknąłem.