Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

cet objet ne gère pas cette proprièté?

11 réponses
Avatar
Otto
Bonjour à tous et encore un joyeux Noël.

Je n'arrive pas à comprendre et à trouver la cause de ce
problème. Est-ce une erreur du browser ou du server web ?
Le server web est un petit appareil industriel!

Une erreur est survenue sur le script de cette page
ligne: 12
car: 4
erreur: cet objet ne gère pas cette proprièté ou cette
méthode
code: 0

Le script:
<script language="JavaScript">
function sendcmd(relais,onoff) // séquence de commande
{
document.mfrm.name=relais
document.mfrm.value=onoff
document.mfrm.method="GET"
document.mfrm.submit() <-- Ligne 12
}
</script>
</head>

Les formulaires qui font appel à ce script:
<FORM name=mfrm method=GET action="/"><input type="button"
value="R1 ON" onClick="sendcmd(3,1);"></FORM>
<FORM name=mfrm method=GET action="/"><input type="button"
value="R2 OFF" onClick="sendcmd(3,0);"></FORM>

Pour comparaison les lignes suivantes qui ne font pas appel
au script fonctionnent:
<FORM name=mfrm method=GET action="/"><input type=submit
NAME=4 VALUE="1"></FORM>
<FORM name=mfrm method=GET action="/"><input type=submit
NAME=4 VALUE="0"></FORM>



Merci d'avance pour tous renseignements.

Otto

10 réponses

1 2
Avatar
L'ermite
Otto wrote:
function sendcmd(relais,onoff) // séquence de commande
{
document.mfrm.name=relais
document.mfrm.value=onoff
document.mfrm.method="GET"
document.mfrm.submit() <-- Ligne 12
}


Il ne manquerait pas tout simplement les points-virgules à la fin de chaque ligne?

--
L'ermite

Avatar
YD
Otto wrote:

function sendcmd(relais,onoff) // séquence de commande
{
document.mfrm.name=relais
document.mfrm.value=onoff
document.mfrm.method="GET"
document.mfrm.submit() <-- Ligne 12 }



Il ne manquerait pas tout simplement les points-virgules à la fin de
chaque ligne?


Non. Le moteur de script les ajoute. Il n'y a pas d'ambiguïté. Mais c'est
mieux de ne pas les oublier ;-)

Àmha, le problème vient du HTML qui déclare deux formulaires du même nom.
Dans ce cas document.mfrm renvoie une collection des 2 formulaires :
document.mfrm[0] qui correspond au premier formulaire dans le HTML et
document.mfrm[1] qui correspond au 2e. Il accepte d'ajouter des propriétés
(name value et method) à cet objet, mais quand on essaie d'invoquer la
méthode submit(), il coince car elle n'est pas définie ! Sont définis
document.mfrm[0].submit() et document.mfrm[1].submit()...

La solution la plus simple serait de ne faire qu'un seul formulaire, le
bout de code fourni s'y prête. Seul le bouton cliqué renvoie une valeur
au serveur. Changer le nom du formulaire me semble par contre un peu
risqué... et inutile. Ou alors il faut référencer l'objet dans une variable
avant.

--
Y.D.


Avatar
Otto
Comme je l'ai laissé entendre dans mon dernier message il s'agit d'un petit
webserver industriel.

Ce que je cherche à faire est d'obtenir un code compact. Les ligne suivantes
fonctionnent:
<FORM name=mfrm method=GET action="/"><input type=submit NAME=4
VALUE="1"></FORM>
<FORM name=mfrm method=GET action="/"><input type=submit NAME=4
VALUE="0"></FORM>

En fait NAME correspond au relais que je veux encl. ou décl.
et VALUE est l'état que je veux obtenir. En fait lorsque je clique sur un des
boutons cela envoie le get suivante:

http://192.168.90.11:2712/?4=1 ou ?4=0

Le problème est que le bouton m'affiche un "O" ou un "1". Avec l'aide du
script je voulais générer un GET en ayant la possibilité de mettre un texte
plus complet dans le bouton.

J'ai donc essayé la solution présenté ci-dessous. Mais cette fois avec un nom
de formulaire différent (conseils reçu dans ce thread):

<FORM name=mfrmx method=GET action="/"><input type="button" value="R1 ON"
onClick="sendcmd(3,1);"></FORM>
<FORM name=mfrmy method=GET action="/"><input type="button" value="R2 OFF"
onClick="sendcmd(3,0);"></FORM>

qui appelle le script:
<script language="JavaScript">
function sendcmd(relais,onoff) // envoi de la séquence de commande
{
document.mfrmx.name=relais
document.mfrmx.value="onoff"
document.mfrmx.submit()
}
function sendcmd(relais,onoff) // envoi de la séquence de commande
{
document.mfrmy.name=relais
document.mfrmy.value="onoff"
document.mfrmy.submit()
}
</script>

Mais cela me génère que le GET suivant:
http://192.168.90.11:2712/?
La valeur ?3=1 ou ?3=0 n'est pas généré à la fin de l'url!


Peut-être y a t'il un solution avec un boutons graphique, mais il est
important que je puisse générer à la fin de GET / URL l'extension ?3=1 (3pour
le relais et 1 on l'enclencher).

Merci pour l'aide et encore un joyeux Noël à tous.

Otto



Otto wrote:

function sendcmd(relais,onoff) // séquence de commande
{
document.mfrm.name=relais
document.mfrm.value=onoff
document.mfrm.method="GET"
document.mfrm.submit() <-- Ligne 12 }



Il ne manquerait pas tout simplement les points-virgules à la fin de
chaque ligne?


Non. Le moteur de script les ajoute. Il n'y a pas d'ambiguïté. Mais c'est
mieux de ne pas les oublier ;-)

Àmha, le problème vient du HTML qui déclare deux formulaires du même nom.
Dans ce cas document.mfrm renvoie une collection des 2 formulaires :
document.mfrm[0] qui correspond au premier formulaire dans le HTML et
document.mfrm[1] qui correspond au 2e. Il accepte d'ajouter des propriétés
(name value et method) à cet objet, mais quand on essaie d'invoquer la
méthode submit(), il coince car elle n'est pas définie ! Sont définis
document.mfrm[0].submit() et document.mfrm[1].submit()...

La solution la plus simple serait de ne faire qu'un seul formulaire, le
bout de code fourni s'y prête. Seul le bouton cliqué renvoie une valeur
au serveur. Changer le nom du formulaire me semble par contre un peu
risqué... et inutile. Ou alors il faut référencer l'objet dans une variable
avant.

--
Y.D.





Avatar
Olivier Miakinen

Ce que je cherche à faire est d'obtenir un code compact. Les ligne suivantes
fonctionnent:
<FORM name=mfrm method=GET action="/"><input type=submit NAME=4
VALUE="1"></FORM>
<FORM name=mfrm method=GET action="/"><input type=submit NAME=4
VALUE="0"></FORM>


D'accord, mais quand tu rajoutes ton code JavaScript ça ne fonctionne
plus. Et si, au lieu de citer YD comme un cochon (*) tu essayais ce
qu'il te propose ?

En l'occurrence :

<form name="mfrm" method="GET" action="/">
<input type="submit" name="4" value="1">
<input type="submit" name="4" value="0">
</form>

Cordialement,
Olivier Miakinen


(*) Tu le citais même triplement comme un cochon :
1) en reprenant l'intégralité de sa réponse au lieu de ne garder que
le nécessaire ;
2) en rejetant la citation à la fin ;
3) sans phrase d'introduction rappelant que tu répondais à YD.

Pour ne plus citer comme un cochon :
<http://www.giromini.org/usenet-fr/repondre.html>

Avatar
Otto
Salut Olivier,

Et si, au lieu de citer YD comme un cochon (*) tu essayais ce
qu'il te propose ?

Dis la politesse tu l'appris ou ?


Je n'ai jamais traité quel de nom que tu sites alors SVP!

Et ta réponse est complètement à coté de la plaque.

Otto

Avatar
Olivier Miakinen
J'avais répondu en privé, mais ta boîte est pleine. Alors je recopie mon
message en public, mais avec copie chez moi.

-----------------------------------------------------------------------------

[ réponse par courrier seul ]

Bonjour Otto,

J'ai l'impression que ma réponse a été mal comprise, alors je me permets
de te répondre en privé pour dissiper le malentendu.


Et si, au lieu de citer YD comme un cochon (*) tu essayais ce
qu'il te propose ?


Dis la politesse tu l'appris ou ?


La politesse consiste aussi à se renseigner sur les usages d'un groupe
avant d'y intervenir. Et par exemple à ne pas couper la parole à son
interlocuteur, ni à le considérer comme s'il n'avait pas de nom.

La page suivante traitant de la façon de répondre sur usenet a
d'ailleurs un paragraphe « politesse » (2.a) :
<http://www.giromini.org/usenet-fr/repondre.html>

Je n'ai jamais traité quel de nom que tu sites alors SVP!


Entendons nous bien : je n'ai jamais dit que tu accusais YD d'être un
cochon. J'ai juste dit que ta façon de citer est appelée depuis très
longtemps sur usenet « quotage de goret ». Merci de lire la page web
signalée ci-dessus pour comprendre de quoi il s'agit.

Et ta réponse est complètement à coté de la plaque.


Pourtant, toutes les réponses que j'ai vu données par YD étaient
toujours très pertinentes. En quoi celle-ci ne l'était pas ? Et si elle
était à côté de la plaque, pourquoi ne pas dire pourquoi, au lieu de le
citer intégralement mais en faisant comme si sa réponse n'existait pas ?

Cordialement,
Olivier Miakinen


Avatar
Otto
Bonjour Olivier,

J'ai l'impression que ma réponse a été mal comprise,
alors je me permets de te répondre en privé pour dissiper
le malentendu.

C'est mieux comme cela. Je l'ai mal pris. Je ne suis pas

souvent dans les forums et je trouve cela assez insolent de
répondre comme cela. Mais bon passons.

Et si, au lieu de citer YD comme un cochon (*) tu
essayais ce qu'il te propose ?
Pourtant, toutes les réponses que j'ai vu données par YD

étaient toujours très pertinentes.

La réponse de YD, je l'ai mis en application. J'ai donc

utilisé des noms de formulaires différents. Et si tu avais
lu en détails tu aurais compris que le petit "script" ne
fonctionne pas comme je pensais et que j'ai eu un autre
petit problème.

Pourquoi ne pas dire pourquoi, au lieu de le citer > >
intégralement


Si j'ai répété en partie ma question, c'est que ce script

ne fonctionne pas sur un PC mais sur un truc électronique
assez spécial. Et s'il y avait des formulaires de même nom
c'est que les exemples du fournisseur étaient comme cela!

J'ai suivi ton lien
<http://www.giromini.org/usenet-fr/repondre.htm> et y
penserai la prochaine fois.

Joyeuses fêtes

Otto


Avatar
YD
Comme je l'ai laissé entendre dans mon dernier message il s'agit d'un petit
webserver industriel.

Ce que je cherche à faire est d'obtenir un code compact. Les ligne suivantes
fonctionnent:
<FORM name=mfrm method=GET action="/"><input type=submit NAME=4
VALUE="1"></FORM>
<FORM name=mfrm method=GET action="/"><input type=submit NAME=4
VALUE="0"></FORM>

En fait NAME correspond au relais que je veux encl. ou décl.
et VALUE est l'état que je veux obtenir. En fait lorsque je clique sur un des
boutons cela envoie le get suivante:

http://192.168.90.11:2712/?4=1 ou ?4=0

Le problème est que le bouton m'affiche un "O" ou un "1". Avec l'aide du
script je voulais générer un GET en ayant la possibilité de mettre un texte
plus complet dans le bouton.


Le plus simple alors :
<FORM name=mfrm method=GET action="/"><input type=submit NAME=4
VALUE="R1 ON" onclick="this.value='1';"></FORM>
<FORM name=mfrm method=GET action="/"><input type=submit NAME=4
VALUE="R2 OFF" onclick="this.value='0';"></FORM>

J'ai donc essayé la solution présenté ci-dessous. Mais cette fois avec un nom
de formulaire différent (conseils reçu dans ce thread):

<FORM name=mfrmx method=GET action="/"><input type="button" value="R1 ON"
onClick="sendcmd(3,1);"></FORM>
[...]
Mais cela me génère que le GET suivant:
http://192.168.90.11:2712/?
La valeur ?3=1 ou ?3=0 n'est pas généré à la fin de l'url!


Au temps pour moi, j'ai répondu un peu vite. Les INPUT type="button" ne génèrent pas
une valeur transmise dans le GET, c'est les submit qui...

Une autre solution :

<FORM name=mfrm method=GET action="/">
<input type="hidden" value="" name="R3">
<!-- C'est le champ caché qui renvoie la valeur -->
<input type="button" value="R3 ON "
onClick="sendcmd('R3',1);">
<input type="button" value="R3 OFF"
onClick="sendcmd('R3',0);" id=button1 name=button1></FORM>


qui appelle le script:
<script language="JavaScript">
function sendcmd(relais, onoff) // envoi de la séquence de commande
{
relais=document.mfrm.elements[relais];
relais.value=onoff;
relais.name=relais.name.replace("R",""); // On enlève le 'R' du nom du relais avant d'envoyer...
document.mfrm.submit();
}
</script>

--
Y.D.

Avatar
Thibaut Allender
J'ai suivi ton lien
<http://www.giromini.org/usenet-fr/repondre.htm> et y
penserai la prochaine fois.

Joyeuses fêtes


champagne !

--
thibaut allender | freelance | http://capsule.org

Avatar
Otto
Salut Thibaut

J'ai suivi ton lien
<http://www.giromini.org/usenet-fr/repondre.htm> et y
penserai la prochaine fois.

Joyeuses fêtes


champagne !

Merci, mais ne pas en abuser...


Otto


1 2