Bonjour tout le monde!

Derrière ce titre barbare se cache en fait un problème facile pour certains mais complexe pour moi...
Pour aller à l'essentiel, je travaille sur un calendrier de réservations, les jours qui composent ce calendrier peuvent avoir 3 états : "free", "pending", "booked" ("libre", "en attente" et "occupé" pour ceux qui seraient fâchés avec l'anglais... :p )
Ces états sont stockés dans une base de données contenant les infos de la réservation, lorsqu'une location est faite, la page introduit la nouvelle entrée dans la bdd (l'état est directement mis à "pending"), ça, ça fonctionne très bien.

Le problème survient lorsque je charge la page, je veux faire une lecture de la bdd afin de remplir un tableau qui contient les dates de la bdd et leur état afin de colorer le calendrier selon chaque date, sauf que, ce tableau est un tableau JavaScript (obligatoirement, j'en ai besoin dans mes traitements qui sont, eux aussi, en JS ), j'ai vu qu'on pouvait remplir un tableau JS avec du PHP avec des echo (pas la peine de me rappeler que le JS et PHP ne sont normalement pas compatibles vu qu'un est serveur et l'autre coté client...), mais ça ne marche pas...

Voici à quoi devraient ressembler le tableau formé par le PHP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
var arrayB = {'2017-08-01':'pending', '2017-08-18':'booked'};
Pour rappel, ce tableau est un tableau JS...

Voici comment je l'instancie avec le PHP :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<script>
          // array à générer par exemple en php à partir des dates
          //'2017-08-01':'pending'
          var arrayB = new Array(
          <?php
            try
            {
              $bdd = new PDO('mysql:host=localhost;dbname=asbl;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
            }
            catch(Exception $e)
            {
            //En cas d'erreur, on affiche un message et on arrête tout
              die('Erreur : '.$e->getMessage());
            }
            $tab = array();
 
            $reponse = $bdd->query('SELECT dateReserv, etat FROM locations');
 
            $nbLignes = mysql_num_rows($reponse);
 
            for($i = 0; $i <= $nbLignes; $i++)
            {
              if($i!=0)
                echo ', ';
              $donnees = $reponse->fetch();
              $entree = $donnees['dateReserv'] . ':' . $donnees['etat'];
              $tab[$i] = $entree;
 
              echo $tab[$i];
            }
            $reponse->closeCursor();
          ?>
          );
        </script>
Voici un screenshot de la bdd :

Nom : bdd.jpg
Affichages : 1487
Taille : 109,3 Ko

Voici ce que ça devrait donner :

pour le tableau JS suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
var arrayB = {'2017-08-10':'pending', '2017-08-20':'booked', '2017-08-15':'pending'};
On obtient ceci :

Nom : cal.jpg
Affichages : 1531
Taille : 19,4 Ko

Je pense avoir tout dit, si vous avez d'autres questions, n'hésitez pas!