Page 1 sur 1

[Résolu] Problème insertion Smileys dans Textarea JS

Posté : 16 nov. 2010, 12:07
par GGuiz
Bonsoir à tous,

Voilà je suis en train de m'arracher les cheveux sur une fonction pour insérer un smiley dans un champ textarea pour être récupérer ensuite via la BDD.

J'ai un petit problème pour la copie du smiley dans le textarea, j'utilise pour cela un bout de code java script mais malheureusement ça ne marche pas et je vois ne vraiment pas pourquoi.

Je voudrais faire en sorte que lors du clic sur le smiley, le code s'affiche dans le textarea. La récupération quant à elle fonctionne bien.

Je travaille en PHP, voici la fonction ;

Code : Tout sélectionner

echo '<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">'."\n\n"; [...] echo "<script type=\"text/javascript\" language=\"JavaScript\">\n"; echo "//<![CDATA["; echo "function emoticon(text) { var txtarea = document.post.texte; text = ' ' + text + ' '; if (txtarea.createTextRange && txtarea.caretPos) { var caretPos = txtarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; txtarea.focus(); } else { txtarea.value += text; txtarea.focus(); } }"; echo "//]]>"; echo "</script>\n";
Et voilà comment je l'appelle ;

Code : Tout sélectionner

echo " <form method=\"post\" name=\"post\" action=\"commentaire_post.php\">\n"; [...] echo " <textarea cols=\"80\" rows=\"4\" name=\"texte\"></textarea><br />\n"; foreach($tablesmilies as $cle => $val) { echo '<img src="commentaires/images/smilies/'.$val.'" onmouseover="this.style.cursor=\'hand\';" onclick="emoticon(\' '.$cle.' \');" alt="'.$cle.'" title="'.$cle.'" />'; }
Actuellement, il n'y a pas de réaction au clic, ni même au onmouseover. (le title fonctionne au survol).

J'espère avoir été clair et que vous pourrez me dépanner !

Merci d'avance et bonne journée.

Re: Problème insertion Smileys dans Textarea JS

Posté : 16 nov. 2010, 12:14
par moogli
Salut,

Utilise un lien sur l'image pour l'insertion du smiley l'image n'est pas un element cliquable (sauf si je ne montre).

@+

ps je suis pas. Certain que le forum php soit le bon(plutot js)

Re: Problème insertion Smileys dans Textarea JS

Posté : 16 nov. 2010, 12:22
par GGuiz
Bonjour Moogli et merci pour ta réponse,

normalement, l'élément "onclick" permet de rendre l'image cliquable, mais j'ai quand même essayé dans le doute de faire un lien ;

Code : Tout sélectionner

echo "<a href=\"javascript:emoticon(\' '.$cle.' \');\"><img src=\"commentaires/images/smilies/".$val."\" alt=\"".$cle."\" title=\"".$cle."\" /></a>";
Mais malheureusement, ça ne fonctionne pas non plus. A part bien sur, le pointeur qui change au survol, mais là, c'est dû au lien.

Pour l'emplacement du topic, je ne savais pas vraiment où le placer, mais il me semblé plus judicieux de le mettre ici parce que je pense surtout à une erreur php et non JS, c'est un script tout fait que j'ai récupéré et qui fonctionne ailleurs.

Re: Problème insertion Smileys dans Textarea JS

Posté : 16 nov. 2010, 12:26
par moogli
Si tu vire le php est que tu met lentout dans unnficjier html ca fonctionne ?

Qu'a tu dans le source html généré ? (est ce que c'est conforme a ce que tu attend ?)

A tu regardé ce que donne la console javascript ?

@+

[Résolu] Problème insertion Smileys dans Textarea JS

Posté : 16 nov. 2010, 16:40
par GGuiz
Merci Moogli,

grâce à toi mon problème est résolu !

Je n'avais pas pensé à tout passer en html, j'ai simplifié au maximum mon code et c'était en fait des balises rajoutées pour passer au w3c validator qui me posaient problème ; en passant le tout en html, je me suis aperçu que je n'avais pas fait de retour chariot avec "\n", donc la fonction n'était pas interprétée.

Code : Tout sélectionner

echo "//<![CDATA[\n"; echo "//]]>\n";
Un grand merci à toi =) Bonne journée !

Re: Problème insertion Smileys dans Textarea JS

Posté : 16 nov. 2010, 17:07
par moogli
De rien

Peut tu ajouter le tag resolus ?

Merci

@+

Re: [Résolu] Problème insertion Smileys dans Textarea JS

Posté : 16 nov. 2010, 19:02
par GGuiz
Voilà qui est fait. Merci encore et bonne continuation.