Desktop PHP - probleme de refresh

Bonjour à tous,

Je suis actuellement en train d’implementer une nouvelle fonctionnalité dans mon plugin, qui créé de façon automatique un scénario.
Tout marche bien mais durant ma série de test, je me suis aperçu d’une chose.

Le lancement de la creation du scenario, comme sa modification ou sa suppression, se lance a partir d’un onglet de la configuration d’un équipement

Dans mon code, je set une configuration sur l’équipement pour stocker l’ID de scénario que j’ai créé. Je l’utilise ensuite dans mon code desktop/php/Diagral_eOne.php pour afficher si le scénario existe (et uniquement dans ce cas son nom) et j’ajuste mes boutons (Génération si il n’existe pas, modification si le scénario existe et j’ajoute un bouton supprimer si le scénario existe).

Cependant, je viens de me rendre compte que la page n’est pas rafraichi quand je rentre dans un équipement. Ca doit sûrement utilisé du Jquery
Sauf que dans mon cas, je regarde si $_GET[‹ id ›] est défini pour savoir que je suis dans un équipement et à ce moment là je requête la configuration qui stocke mon scenarioID.

Evidement, comme la page ne se rafraichi pas, quand je suis sur la page liste les équipements, ce bout de code ne s’applique pas :

Et donc quand je rentre dans l’équipement, mon test sur l’objet $existingScenario ne marche pas car quand la page a était chargé, $_GET[‹ id ›] n’existait pas et donc mon objet $existingScenario ne s’est pas loadé. Si je force un refresh dans la page de l’équipement, mon affichage devient bon car mon bout de code (cf screen au dessus) est bien valide.

Je n’arrive pas a trouver une solution pour sortir de ce problème.
Toutes aides ou idées sont les bienvenues.
Merci

PS : Le code PHP complet est ici : https://gist.github.com/mguyard/45834e48d17021c8c6523adfe6616be8

Hello,
Pas sur d’avoir tout compris mais à mon avis ta solution sera de faire un appel Ajax vers une fonction de ton plug-in qui fait ce check on change de Id dans la page par exemple.

Le seul moyen pour moi sans rafraîchir la page est d’envoyer un évent en js et de mettre un llistener sur cet évent pour qu’il mette à jour.

C’est ce qu’on fait par exemple sur le core au changement de thème. Le switch de theme en voit un évent et les widgets qui doivent changer d’images light/dark par exemple écoutent cet event.

Oui ça marchera pour un équipement mais s’il faut en gérer plusieurs et avoir une info particulière à chaque « clic » sur un équipement dans la page de config le code Php ne sait pas envoyer d’event, il n’est pas au « courant »

‘echo ‘‘;’

Et tu peux poster un json dans l’évent pour savoir à qui ça s’adresse.

Bon ça passe pas, en gros dans le php echo script fonction() /script

Je me doutais que la solution serait du JS mais comme je bidouille seulement en JS ca semble pour le moment hors de ma portée.

Vous auriez un petit exemple de code pour me mettre sur la piste ?

envoi de l’event changeThemeEvent

et reception:

Merci Mr.
Grace a vous j’ai fait ce que je souhaitais faire.
J’ai mis à jour mon gist publié dans le premier post si vous voulez regarder. Le code m’a l’air propre mais bon je suis pas un expert JS.
En tout cas ca marche bien.

Si vous avez des remarques sur le code n’hésitez pas.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.