C'est un problème classique. PHP et JavaScript ne « vivent » pas au même moment.
Il faut bien comprendre que PHP tourne côté serveur, et JavaScript côté client. PHP ne sait générer que du texte et l'envoyer au client via HTTP. HTML et JavaScript, tout ça c'est juste du texte pour PHP. Ce n'est que lorsque ça arrive au navigateur que ça prend un sens.
De son côté, le navigateur reçoit des données texte qu'il interprète comme HTML et JavaScript. Une fois qu'il a tout reçu, il ferme sa connexion au serveur et le processus PHP sur le serveur s'arrête. Il n'a alors plus aucune chance de connaître une variable du serveur à moins de rouvrir la connexion et relancer le processus serveur (ce qui peut se faire par exemple avec Ajax).
La solution la plus simple est d'envoyer la variable au même moment que tout le reste. Pour ça, ton serveur doit générer une ligne de code JavaScript déclarant la variable.
echo "<script>var advise_id = $id</script>";
Si par exemple $id contient la valeur 42, une fois interprétée et envoyée, cette ligne de code devient :
<script>var advise_id = 42;</script>
Ensuite, il te faudra juste modifier un peu ton JS pour que tokenUrl reçoive la bonne valeur.
Partager