remplacer une valeur d un textarea preselectionne

Invité
Invité n'ayant pas de compte PHPfrance

12 juil. 2007, 12:41

bonjour a tous

voila mon pti probleme
j ai un textarea avec un texte

Code : Tout sélectionner

<textarea name="message" col="10"> Bonjour [Nom de votre ami], Blabla!A plus tard. </textarea>
a partir d un input je voudrais changer la valeur entre crochets [Nom de votre ami].

j ai essaye de modifier des scripts bbcode. mais sans succes ,
si vous aviez un exemple pour m aider :)

merci :lol:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

12 juil. 2007, 13:59

regardes au niveau des expressions régulières de javascript.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Invité
Invité n'ayant pas de compte PHPfrance

12 juil. 2007, 14:11

Code : Tout sélectionner

function changer(Reg,Val) { document.RecoForm.message1.value= document.RecoForm.message1.value.replace(Reg,Val); } <input type="text" name="nom" style ="font-size:14px;color:#666;width:150px;" onblur="changer('[ami]',this.value);"/><br /> <textarea name="message1" id="message1" col="10" style="font-size:14px;color:#666;width:400px;height:120px"> Bonjour [ami],!A plus tard.[Votre Nom],[Votre Email] </textarea>
c est ce que j ai fait ca fonctionne mais s' il RE-tape un nom, ca plante puisque [ami] (Reg) n est plus defini!!!!
la je seche un peu!

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

12 juil. 2007, 16:25

utilise la propriété innerHTML pour le textarea et non value.
Correction:

Code : Tout sélectionner

function changer(Reg,Val) { document.RecoForm.message1.innerHTML = document.RecoForm.message1.innerHTML.replace(Reg,Val); }
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 juil. 2007, 17:27

Le pattern ne devrait elle pas plutôt être /\[ami\]/ et pas '[ami]' ?

Les crochets définissent des classes et devraient donc être protégés...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

13 juil. 2007, 10:29

merci pour les reponses :)

mais le script du haut fonctionnait (ie et ff), (innerhtml fonctionne aussi )

mais le probleme (je reexplique je sais pas si cetait clair!):

vient du fait que s il entre un nom dans l input , la valeur [ami] change correctement, mais le gars c est trompee et veut rechanger son nom, l input a perdu le focus et il le reprends , ben du coup [ami]n est plus present , et ca marche plus ...

du coup, je verifie sur onfocus si c est vide, si ca l est pas, j assigne dans une autre fonction la valeur originel du textarea...
je ne vois pas comment faire autrement.

voila voila
merci pour l aide en tout cas! :D
(je repond pour poster ma reponse pour le forum au cas ou)

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

15 juil. 2007, 20:40

tu mémorise le nom dans une variable temporaire.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène