Bonjour à tous,

Je débute dans le développement web et je n'arrive pas à appeler une variable citée dans un code PHP, variable composée du résultat d'une requête MySQL, dans un code JS.

Un exemple vaut toujours mieux que 1000 explications.

Mon code 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
35
36
37
38
39
40
41
42
43
<?php
                    // Create connection
                    $con=mysqli_connect("localhost","root","","hospital_center");
                    // Check connection
                    if (mysqli_connect_errno())
                    {
                    echo "Failed to connect to MySQL: " . mysqli_connect_error();
                    }
                    $result = mysqli_query($con,"
                    SELECT * FROM citadelle 
                    WHERE heure BETWEEN '$heure_moins' AND '$heure_plus'
                    AND date='$date'
                    AND localisation= '$localisation'
                    AND statut = 'available'
                    UNION 
                    SELECT * FROM chateau_rouge
                    WHERE heure BETWEEN '$heure_moins' AND '$heure_plus'
                    AND date='$date'
                    AND localisation= '$localisation'
                    AND statut = 'available'
                    UNION
                    SELECT * FROM sainte_rosalie
                    WHERE heure BETWEEN '$heure_moins' AND '$heure_plus'
                    AND date='$date'
                    AND localisation= '$localisation'
                    AND statut = 'available'
                    ");
 while($row = mysqli_fetch_array($result))
                        {
                        echo '<div div id="resultat_requete" class="col-8">';
                        echo $row['date'];
                        echo $row['heure'];
                        echo $row['hopital'];
                        echo '</div>';
                        echo '<button id="button'.$row['id'].'" class="bouton col-4">Réservez maintenant</button>';
                        echo '                
                            <div id="formulaire'.$row['id'].'" class="formulaire col-12">
                                <form id="contact-form" method="get" action="envoi.php" role="form">
                                </form>
                            </div>
                            ';
                        }
?>

Mon code JS:
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<head>
    <script src="../jquery-3.4.1.min.js"></script>
    <script>
        var id= "<?php echo $row['id']; ?>";
        alert(id);
        $(document).ready(function(){
            $("#button"+id).click(function(){
                $("#formulaire"+id).slideToggle(300);
            });
        });
    </script>
</head>

Le but de l'animation JS est que le formulaire en-dessous du résultat X (avec la propriété hidden) de la requête PHP slideDown quand on clique sur le bouton correspond au résultat X de la requête PHP et slideUp quand on reclique dessus.

Cependant, quand j'exécute ma page .php dans un serveur local (via Wamp), la console m'indique cette erreur: "Uncaught SyntaxError: Invalid or unexpected token". La ligne correspond à la ligne ou j'appelle la variable PHP dans le JS, c'est à dire :
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
var id= "<?php echo $row['id']; ?>";
.

Nom : Capture.PNG
Affichages : 1563
Taille : 87,1 Ko

Est-ce quelqu'un aurait une idée de comment résoudre mon problème? Je suis quasi certain que le problème vient du fait que la variable $row est mal appelée dans le code JS.

Je vous remercie d'avance pour vos réponses!

Jerry