Page 1 sur 1

remplacement automatique dans un formulaire

Publié : 14 déc. 2005, 23:39
par Mad mass
Bonjour,

J'utilise un script php pour un petit livre d'or qui fonctionne plutot bien, sauf la fonction qui permet de rajouter un smilie dans le formulaire (comme ici, à gauche). Voici le code qui ne marche pas :

Code : Tout sélectionner

<form method="POST" name="form" action="livre_dor.php">
<input type="text" name="titrems" size="22" value="Titre du message" onclick="javascript:document.form.titrems.value='';">
<input type="text" name="pseudo" size="22" value="Pseudo/Nom" onclick="javascript:document.form.pseudo.value='';"><br>
<br>
<textarea style="font-size: 8 pt; font-family: Times new roman" rows="10" name="commentaire" cols="47"></textarea><br>
  <img src="livredor-bts/2.gif" style="CURSOR: pointer" onClick="commentaire.value+=' [main] '">
  <img src="livredor-bts/10.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [fume] '">
  <img src="livredor-bts/3.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [cool] '">
  <img src="livredor-bts/6.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [nul] '">
  <img src="livredor-bts/1.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [waoo] '">
  <img src="livredor-bts/0.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [dingue] '">
  <img src="livredor-bts/9.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [triste] '">
  <img src="livredor-bts/5.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [idee] '">
  <img src="livredor-bts/11.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [mechant] '">
  <img src="livredor-bts/4.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [perplexe] '">
  <img src="livredor-bts/8.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [amigo] '">
  <img src="livredor-bts/7.gif" style="CURSOR: pointer" onclick="commentaire.value+=' [love] '">
&nbsp;<INPUT TYPE="submit" value="Ajouter" name="submit">
  </div></form>
ça marche avec ie, donc je suppose que mon formulaire utilise des instruction qui ne sont pas standard (au début, j'avais style="cursor: hand, en me promenant dans votre forum, j'ai compris qu'il fallait mettre pointer pour que ça fonctionne dans les deux browsers, mais pour que le rajout se mette ds le formulaire qd on clique dessus, je sèche). Quelqu'un peut me donner la bonne ligne de code?
Merci bcp

Oups: si vous voulez voir, c'est là : http://www.tultetar.be/content/livre_dor.php

Publié : 15 déc. 2005, 08:48
par calimo
Bon, déjà la première chose à faire dans ce genre de cas est d'ouvrir la console javascript. Outils > Console JavaScript.

Vides-là, et cliques sur un de tes smileys : tu aura surement un message (ou plus) apparaissant dans la console :wink:

Il va très certainement te dire que "commentaire" est indéfini, ce qui est vrai (je crois que IE fais automatiquement la correspondance avec l'attribut name, mais à nouveau ce n'est pas standard). Tu dois utiliser un document.getElementById ou un document.forms['X'] pour sélectionner ton textarea :wink:

Et ça fonctionne...

Publié : 15 déc. 2005, 22:30
par Mad mass
Merci Calimo, ce n'était pas une réponse à "copier-coller", j'ai mis un peu de temps à comprendre ce que tu m'expliquait, mais au moins, ça m'a fait mieux comprendre le fonctionnement de "mon" script. J'ai essayé les codes javascript (on dit code?) que tu donnais, et d'autres que j'ai trouvé tout seul sur le net, mais ça n'a rien donné. Finalement, la réponse était un peu plus haut dans le code lui-même : mettre

Code : Tout sélectionner

javascript:
au début de l'instruction. ce qui donne :

Code : Tout sélectionner

<img src="livredor-bts/2.gif" style="CURSOR: pointer" onClick="javascript:document.form.commentaire.value+=' [main] '">
Et ça, ça fonctionne dans les deux browsers! Ouf!

Publié : 16 déc. 2005, 08:08
par calimo
Je n'allais pas te donner un code à copier-coller qui avait toutes les chances de ne pas marcher :lol:

Cependant, ça m'étonne qu'il faille un javascript: au début de l'instruction. M'enfin, si ça marche :roll: