8725 sujets

Développement web côté serveur, CMS

Bonjour,
Je viens de lire un tuto sur le net
qui donne cette solution.
a écrit :

Voilà grossomodo une petite fonction à adapter selon ton programme:

<script>
function afficherMsg()
{
document.forms['nom_formulaire'].elements['nom_input_texte'].value = 'Texte à afficher';
}
</script>

Mais tu pourrais envoyer un élément en paramètre par exemple pour changer le texte à envoyer.
Dans ton bouton radio :

<input type="radio" onchange="afficherMsg();" id="radio_1" name="btn_radio" value="valeur_1" />

N'oublie pas que ton input type texte doit avoir un attribut "id" qui sera identifié par la fonction.


je suis nul de chez nul en JS.
J'ai essayé le code mais cela n'affiche rien dans le imput texte.

Nouvel Asset.
<br/>
<script>
function afficherMsg()
{
document.forms['pdt'].elements['radio_non'].value = 'XXXXX';
}
</script>
<label>NON<label>
<input type="radio" onchange="afficherMsg();" id="radio_1" name="ASSET_NON" value="valeur_1" />
<br/>
<input type="texte" name="[ASSET]" id="radio_non" tabindex="20"/>
<br/><br/>


Merci.
Modérateur
Salut,

L'inspecteur de code est ton meilleur ami quand tu dev. Et la console pour le Js. Il suffit de lire dans 90% des cas. Là elle dit :
Uncaught TypeError: Cannot read properties of undefined (reading 'elements')

Le code ne peut pas lire "elements" d'un élément undefined. DOnc ca veut dire que forms['pdt'] est indéfini. Et quand on regarde ton HTML, il n'y a pas de form avec le name "pdt". Docn il te manque ca pour pouvoir cibler les éléments.

Et sinon tes labels sont mal fermés.

Bonne aprem Smiley smile
Modifié par _laurent (25 Mar 2022 - 16:08)
Bonjour _laurent,
Voici ma page en entier.
Peux-tu me dire si mon form est bien défini et bien placé?
Je ne connait pas la console JS.


 <br/><br/>
 Poste(s) de travail
  <br/><br/> 
 Veuillez selectionner l'intervention effectuée
 <br/>
  <form method="post" action="sdp-asset2.php">
<select name="demg"/>
 <option value="">Selectionner...</option>
<option value="[sdp-dem]">Déménagement</option>
<option value="sdp-pret">Prêt</option>
<option value="sdp-ndo">Nouvelle dotation sans reprise</option>
<option value="sdp-rep">Reprise sans nouvelle dotation</option>
</select>
<br/><br/>
Veuillez selectionner le type de poste	
<br/>

<select name="prt"/>
 <option value="">Selectionner...</option>
<option value="[sdp-pf]">Poste fixe</option>
<option value="sdp-laptop">Laptop + avec ou sans station d'accueil</option>
<option value="sdp-ps">Poste scientifique</option>
</select>	
<br/><br/>
Nouvel Asset.
<br/>
<script>
function afficherMsg()
{
document.forms['pdt-radio'].elements['radio_non'].value = 'XXXXX';
}
</script>
<label>Hostname inconnu ou matériel non sérialisé<label>
<form name="pdt-radio">
<input type="hidden" name="balise" value="[ASSET]" />
<input type="radio" onchange="afficherMsg();" id="radio_1" name="ASSET_NON" value="valeur_1" />
<br/>
<input type="texte" name="asset" id="radio_non" tabindex="20"/>
<br/><br/>
Durée de l'opération en Minutes.
<br/>
<input type="hidden" name="balise" value="[TIME]" />
<input type="number" name="time" tabindex="20" />
</select>
</form>
<br/><br/>
 <input type="submit" value="Suivant"/>


Merci pour ta lecture.
Modérateur
Alors,

Avant tout, pour dev proprement tu vas avoir besoin d'au moins 2 choses indispensables :

- Un éditeur de code avec de la coloration syntaxique : https://code.visualstudio.com/ ou https://www.sublimetext.com/ permet de colorer les balises et met en évidence les erreurs d'inattention comme une balise mal fermée etc. Il faut aussi bien indenter ton code, ca sauve des vies ! Si tu as la flemme de repasser partout, des outils en ligne le fond pour toi.
Par exemple, prend le code que tu viens de me donner, va sur https://jsfiddle.net et colle le dans la partie HTML. En haut a droite tu verras un petit bouton "Tidy", il va ranger ton code automatiquement. Tu verra alors que les éléments sont mal imbriqués et tu verra plusieurs éléments en rouge car mal écrit comme :
 <select name="prt" /></select>
pourquoi tu as auto-fermé la balise ouvrante ?
Ou encore pourquoi tu as 2 form dont un qui n'est pas fermé ?

- Apprendre a utiliser l'inspecteur de code et la console : https://developer.chrome.com/docs/devtools/overview/ l'outil ultime pour inspecter le code que tu vois, agir dessus, voir ce qui est pris en compte ou pas, voir les erreur Js, etc etc...

Désolé de te faire revenir aux base mais quand on veux aller plus vite que la musique on copie colle tout ce qu'on trouve sur internet en vrac sans chercher à comprendre et forcément on se génère 10x plus de débug à faire.

"je suis nul de chez nul en JS." n'as jamais été une excuse pour ne pas chercher à comprendre Smiley lol

Pour ton soucis, une fois tout ces problèmes secondaires réglés on/tu y verras plus clair et on pourra s'y coller si ca coince toujours Smiley smile
Modifié par _laurent (25 Mar 2022 - 16:56)
_laurent

Merci pour tes conseils que je vais suivre.
J'utilise visualStudioCode, mais je suis daltonien et les couleurs et moi!!!! Smiley hum
Ce sera ma lecture du week-end. Smiley biggrin
Mais en attendant d'apprendre, je suis passé par un textaera et une variable php.
Le code fonctionne, je l'améliorerai plus tard.
Car je dois aussi apprendre à faire un copier de la textaera.
a écrit :

Désolé de te faire revenir aux base mais quand on veux aller plus vite que la musique on copie colle tout ce qu'on trouve sur internet en vrac sans chercher à comprendre et forcément on se génère 10x plus de débug à faire.

"je suis nul de chez nul en JS." n'as jamais été une excuse pour ne pas chercher à comprendre Smiley lol

Entièrement d'accord avec toi.
Merci pour ta patience. Smiley biggrin
Modérateur
wisefun77 a écrit :
J'utilise visualStudioCode, mais je suis daltonien et les couleurs et moi!!!! Smiley hum
Très bien pour VS je l'utilise aussi. Est-ce que tu sais que tu peux appliquer des thèmes à VSCode ? Je serais curieux de savoir s'il en existe des bien adaptés aux personnes daltoniennes (avec toutes ses variantes) du genre si des trucs comme ça https://marketplace.visualstudio.com/items?itemName=harai.light-theme-for-color-blind-people tiennent leur promesses.
Sinon certaines indications d'erreurs sont aussi visuelles (petit souligné en zigzag, fond, rond sur le coté etc..) A voir donc.


wisefun77 a écrit :
Mais en attendant d'apprendre, je suis passé par un textaera et une variable php.
Le code fonctionne, je l'améliorerai plus tard.

Bah apres, en dehors des erreurs que j'ai relevé et qui n'ont rien a voir, ton code à l'air fonctionnel : https://jsfiddle.net/undless/u3cxrmLw/

Mais comme tout est en vrac a coté dans le HTML ca coince.

wisefun77 a écrit :

Entièrement d'accord avec toi.
Merci pour ta patience. Smiley biggrin

Avec plaisir !

<input type="text" id="cible" >

<input id="Albertine" type="radio" onclick="document.getElementById('cible').value=id" /><label for="Albertine">Albertine</label>

<input id="Marcel" type="radio" onclick="document.getElementById('cible').value=id" /><label for="Marcel">Marcel</label>
Meilleure solution
Bonjour _laurent,

Pour ce qui est des affichages d'erreur, j'ai trouvé en mettant les erreurs en couleur très claires Que j'arrive à distinguer. Heureusement je ne suis pas daltonien niveau 4.

Merci à tous pour votre aide.