Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1077 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Changer url d'un onclick en fonction d'une variable ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Changer url d'un onclick en fonction d'une variable ?

n°2461878
davidmarli
Posté le 15-01-2024 à 21:30:49  profilanswer
 

Bonjour,
 
j'ai un fichier html qui me sert d'interface pour piloter un relais.
Mon relais est sur un esp dont l'adresse peut varier. (je ne veux pas qu'elle soit fixe)
Donc le index.html, je récupère la variable Address_IP
 
J'ai 4 bouton dont le onclick doit pointer vers cette adresse ip.
 
Comment dois-je procéder.
 
Evidemment si l'ip est fixe, je mets ça dans mon fichier html et tout fonctionne
 
 <button onclick="location.href = 'http://192.168.1.111/relais2off'" class="w3-btn w3-green w3-border" id="maj">OFF</button><span id="savemsg"></span>
 
Mais comment faire pour ajuster l'ip à la volée ?
 
Merci pour votre aide.


Message édité par davidmarli le 15-01-2024 à 21:31:17

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
mood
Publicité
Posté le 15-01-2024 à 21:30:49  profilanswer
 

n°2461879
rat de com​bat
attention rongeur méchant!
Posté le 15-01-2024 à 22:15:15  profilanswer
 

Javascript...


---------------
matos à vendre
n°2461880
davidmarli
Posté le 15-01-2024 à 22:24:42  profilanswer
 

oui, mais encore ?
 
Avec un script javascript je recupere deja la variable addrip.
ensuite j en fais quoi ?


Message édité par davidmarli le 15-01-2024 à 22:24:54

---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
n°2461883
mechkurt
Posté le 16-01-2024 à 08:02:00  profilanswer
 

Un truc du genre, attention à la portée de la variable ip_dyn, faut qu'elle soit globale si tu veux pouvoir y accéder depuis des fonctions différentes...
https://www.pierre-giraud.com/javas [...] -fonction/

Code :
  1. <script>
  2. let ip_dyn = '192.168.1.111';
  3. function Goto(page) {
  4.     location.href = 'http://'+ip_dyn+'/'+page;
  5. }
  6. <script>
  7. <button onclick="Goto('relais2off');'" class="w3-btn w3-green w3-border" id="maj">OFF</button>
  8. <button onclick="Goto('relais2on');'" class="w3-btn w3-green w3-border" id="maj">ON</button>


---------------
D3
n°2461930
davidmarli
Posté le 16-01-2024 à 13:41:35  profilanswer
 

mais pour que ma varable soit globale, il faur la placer a quel endroit du fichier html ?
 
merci


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
n°2461956
mechkurt
Posté le 16-01-2024 à 15:20:37  profilanswer
 

[:mechkurt:2]  
Faut lire l'article que j'ai linké...
 
Grosso merdo faut qu'elle soit déclaré en dehors des fonctions (goto ou actualisation de l'ip) et avant que l'une de celle-ci soit utilisés...


---------------
D3
n°2461984
davidmarli
Posté le 16-01-2024 à 21:35:59  profilanswer
 

merci, je m'étais mal exprimé, en fait je pensais qu'on pouvait la déclarer en dehors d'un <script> </script>, carrément dans le corps du html.


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
n°2461996
mechkurt
Posté le 17-01-2024 à 08:37:53  profilanswer
 

Ben il te faut bien un script pour aller chercher "dynamiquement" ton adresse IP non ?
Je doutes qu'il soit en html... ;)


---------------
D3
n°2462015
davidmarli
Posté le 17-01-2024 à 15:50:21  profilanswer
 

Merci bp, ça marche parfaitement (il y a juste des guillemets simple en trop sur les lignes button, après les points-virgules.)
 
J'ai maintenant une autre question.
 
1) Comment gérer un temps d'attente trop long ?
 En effet si le device en ip_dyn, ne répond pas au bout de 5 s, je voudrais stopper le chargement de la page et revenir à la page de départ. Est-ce possible ?
2) Quand l'adresse réponde, elle retourne une chaine de caractères du style ON,OFF (texte dans un html renvoyé par l'adresse ip en question)
Je voudrais gérer ces 2 valeurs après le chargement de la page avec la fonction Goto.
Là aussi est-ce possible ?
 
Merci.


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
n°2462020
rat de com​bat
attention rongeur méchant!
Posté le 17-01-2024 à 17:12:17  profilanswer
 

La on s'éloigne de la demande initiale. Histoire de ne pas perdre de temps: Donne TOUTES les contraintes/fonctions que tu veux rajouter/avoir et le code existant (entre balises).


---------------
matos à vendre
mood
Publicité
Posté le 17-01-2024 à 17:12:17  profilanswer
 

n°2462024
mechkurt
Posté le 17-01-2024 à 17:52:01  profilanswer
 

Du coups, il ne vaudrait mieux ne pas aller sur la page mais plutôt faire un appel en AJAX qui récupère et traite la réponse...


---------------
D3
n°2462031
davidmarli
Posté le 17-01-2024 à 18:51:55  profilanswer
 

Bon, en fait je me suis débrouillé autrement.
 
Finelament depuis l'interface web (donc depuis mon fichier html), en cliquant sur le bouton, j'appelle une des fonctions (relais1on ou relais1off) sur le serveur contenant la page web.
Ce serveur connait l'adresse ip de l'autre péripherique (celui qui était à ip_dyn).
Avec un http.get (depuis le serveur) je regarde la réponse du périph qui commande le relais.
 
Bref, ça à l'air un peu tordu comme ça, mais ça fonctionne.
 
En revanche, je veux bien quelques explications concernant Ajax, car je ne connais pas du tout.
Ajax permettrait de faire quoi du coup ?


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
n°2462032
mechkurt
Posté le 17-01-2024 à 18:58:47  profilanswer
 

Le lien est cliquable https://developer.mozilla.org/fr/docs/Glossary/AJAX
 
C'est un peu l'équivalent de ton appel de serveur à serveur mais sauf que la c'est client serveur. :D


---------------
D3
n°2462247
rufo
Pas me confondre avec Lycos!
Posté le 21-01-2024 à 20:22:01  profilanswer
 

davidmarli a écrit :

merci, je m'étais mal exprimé, en fait je pensais qu'on pouvait la déclarer en dehors d'un <script> </script>, carrément dans le corps du html.


Oui, tu peux passer l'IP en paramètre ton ta page html.
Ex : https://mapage.html?ip=xxx.xxx.xxx.xxx
 
Après, dans ta page html, tu mets un javascript qui va récupérer la valeur du paramètre "ip" qui est contenu dans location.href. Tu mets la valeur dans une variable que tu mettras dasn l'url sur laquelle tu veux cliquer ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Changer url d'un onclick en fonction d'une variable ?

 

Sujets relatifs
[Résolu] Comportement bizarre d'une fonction entre PHP5 et PHP8Impossible de changer la couleur du haut d'un TabControl
Impossible de changer de couleur d'un"MetroFramework.Controls.MetroBut[SOLVED] fonction super except
fonction illisible dans un fichier annexe[Powershell] Utilisation Variable boucle
Changer une icone en fonction d'une variable ?Créer et ajouter fonction au menu contextuel
Plus de sujets relatifs à : Changer url d'un onclick en fonction d'une variable ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR