Probleme avec la previsualisation de bbcode dans un champ

Eléphant du PHP | 106 Messages

30 nov. 2006, 18:00

Bonjour, voila je remercie d'avance ceux qui voudront bien m'aider a resoudre mon probleme :

Alors voici mon probleme :

J'ai un probleme sur mon script:

Voila je l'ai mis en version d'essai sur cette page : http://myfreekits.free.fr/ns/tuto2.1.php

Essayer de taper du texte puis allez a la ligne et taper encore du texte. La deuxieme ligne n'apparait pas. Mais si on selectionne la derniiere ligne qui n'apparait pas et que l'on lui assimile la couleur noir ca apparait. Je ne comprend pas bien...Pouvez-vous m'aider??

Code : Tout sélectionner

var timer=0; var ptag=String.fromCharCode(5,6,7); function previsualisation() { t=document.formulaire.textarea.value t=code_to_html(t) if (document.getElementById) document.getElementById("prev").innerHTML=t if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1) } function automatique() { if (document.formulaire.auto.checked) previsualisation() } function code_to_html(t) { t=nl2khol(t) // < t=remplace_tag(/</g,'<',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // > t=remplace_tag(/>/g,'>',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // balise Gras t=deblaie(/(\[\/gras\])/g,t) t=remplace_tag(/\[gras\](.+)\[\/gras\]/g,'<b>$1</b>',t) t=remblaie(t) // balise Souligne t=deblaie(/(\[\/souligne\])/g,t) t=remplace_tag(/\[souligne\](.+)\[\/souligne\]/g,'<u>$1</u>',t) t=remblaie(t) // balise Italic t=deblaie(/(\[\/italic\])/g,t) t=remplace_tag(/\[italic\](.+)\[\/italic\]/g,'<i>$1</i>',t) t=remblaie(t) // balise Barre t=deblaie(/(\[\/barre\])/g,t) t=remplace_tag(/\[barre\](.+)\[\/barre\]/g,'<span style="text-decoration: line-through;">$1</span>',t) t=remblaie(t) // balise Citation t=deblaie(/(\[\/citation\])/g,t) t=remplace_tag(/\[citation=([\s\S]*?)\](.+)\[\/citation\]/g,'<strong>Citation $1 :</strong><div class=citation>$2</div>',t) t=remblaie(t) // balise Image t=deblaie(/(\[\/image\])/g,t) t=remplace_tag(/\[image\](.+)\[\/image\]/g,'<img src="$1" />',t) t=remblaie(t) // balise URL t=deblaie(/(\[\/url\])/g,t) t=remplace_tag(/\[\url=([\s\S]*?)\](.+)\[\/url\]/g,'<a href="$1" target="_blank">$2</a>',t) t=remblaie(t) // balise Email t=deblaie(/(\[\/email\])/g,t) t=remplace_tag(/\[\email=([\s\S]*?)\](.+)\[\/email\]/g,'<a href="mailto:$1" target="_blank">$2</a>',t) t=remblaie(t) //LES COULEURS DEBUT// t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=noir\](.+)\[\/noir\]/g,'<span style="color: #000000;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=blanc\](.+)\[\/blanc\]/g,'<span style="color: #FFFFFF;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=rose\](.+)\[\/rose\]/g,'<span style="color: #f26fde;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=rouge\](.+)\[\/rouge\]/g,'<span style="color: red;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=orange\](.+)\[\/orange\]/g,'<span style="color: #d56a00;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=jaune\](.+)\[\/jaune\]/g,'<span style="color: #e8f538;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=vert_clair\](.+)\[\/vert_clair\]/g,'<span style="color: lime;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=vert_fonce\](.+)\[\/vert_fonce\]/g,'<span style="color: #009900;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=olive\](.+)\[\/olive\]/g,'<span style="color: #66cc99;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=turquoise\](.+)\[\/turquoise\]/g,'<span style="color: aqua;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=bleugris\](.+)\[\/bleugris\]/g,'<span style="color: #6699cc;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=bleu\](.+)\[\/bleu\]/g,'<span style="color: blue;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=marine\](.+)\[\/marine\]/g,'<span style="color: #003399;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=violet\](.+)\[\/violet\]/g,'<span style="color: #9900cc;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=marron\](.+)\[\/marron\]/g,'<span style="color: #9f5000;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=gris\](.+)\[\/gris\]/g,'<span style="color: gray;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/couleur\])/g,t) t=remplace_tag(/\[couleur=argent\](.+)\[\/argent\]/g,'<span style="color: silver;">$1</span>',t) t=remblaie(t) // //LES COULEURS FIN// //LES TAILLES DEBUT t=deblaie(/(\[\/taille\])/g,t) t=remplace_tag(/\[taille=minuscule\](.+)\[\/minuscule\]/g,'<span style="font-size: xx-small;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/taille\])/g,t) t=remplace_tag(/\[taille=très petit\](.+)\[\/très petit\]/g,'<span style="font-size: x-small;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/taille\>)/g,t) t=remplace_tag(/\[taille=petit\](.+)\[\/petit\]/g,'<span style="font-size: small;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/taille\>)/g,t) t=remplace_tag(/\[taille=moyen\](.+)\[\/moyen\]/g,'<span style="font-size: medium;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/taille\])/g,t) t=remplace_tag(/\[taille=grand\](.+)\[\/grand\]/g,'<span style="font-size: large;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/taille\])/g,t) t=remplace_tag(/\[taille=très grand\](.+)\[\/très grand\]/g,'<span style="font-size: x-large;">$1</span>',t) t=remblaie(t) // t=deblaie(/(\[\/taille\])/g,t) t=remplace_tag(/\[taille=géant\](.+)\[\/géant\]/g,'<span style="font-size: xx-large;">$1</span>',t) t=remblaie(t) // //LES TAILLE FIN //PARAGRAPHE DEBUT t=deblaie(/(\[\/aligne\])/g,t) t=remplace_tag(/\[aligne=gauche\](.+)\[\/gauche\]/g,'<div class=aligne_gauche>$1<div>',t) t=remblaie(t) // t=deblaie(/(\[\/aligne\])/g,t) t=remplace_tag(/\[aligne=centre\](.+)\[\/centre\]/g,'<center>$1</center>',t) t=remblaie(t) // t=deblaie(/(\[\/aligne\])/g,t) t=remplace_tag(/\[aligne=droite\](.+)\[\/droite\]/g,'<div class=aligne_droite>$1</div>',t) t=remblaie(t) // //PARAGRAPHE FIN // DEBUT Information - Attention - Erreur - Question //Information t=deblaie(/(\[\/information\])/g,t) t=remplace_tag(/\[information\](.+)\[\/information\]/g,'<p><div class=information>$1</div></p>',t) t=remblaie(t) //Attention t=deblaie(/(\[\/attention\])/g,t) t=remplace_tag(/\[attention\](.+)\[\/attention\]/g,'<p><div class=attention>$1</div></p>',t) t=remblaie(t) //Erreur t=deblaie(/(\[\/erreur\])/g,t) t=remplace_tag(/\[erreur\](.+)\[\/erreur\]/g,'<p><div class=erreur>$1</div></p>',t) t=remblaie(t) //Question t=deblaie(/(\[\/question\])/g,t) t=remplace_tag(/\[question\](.+)\[\/question\]/g,'<p><div class=question>$1</div></p>',t) t=remblaie(t) //titre principale t=deblaie(/(\[\/titre principale\])/g,t) t=remplace_tag(/\[titre principale\](.+)\[\/titre principale\]/g,'<p><div class=titreh>$1</div></p>',t) t=remblaie(t) //vignette t=deblaie(/(\[\/vignette\])/g,t) t=remplace_tag(/\[vignette\](.+)\[\/vignette\]/g,'<p><div class=imagem><img src="$1"></div></p>',t) t=remblaie(t) //description t=deblaie(/(\[\/description\])/g,t) t=remplace_tag(/\[description\](.+)\[\/description\]/g,'<p><div class=introh><b><u>Introduction:</u></b><br><br>$1</div></p>',t) t=remblaie(t) //titre etape t=deblaie(/(\[\/titre\])/g,t) t=remplace_tag(/\[titre\](.+)\[\/titre\]/g,'<p><div class=titrem><div class=titrem2></div>$1</div></p>',t) t=remblaie(t) //image etape t=deblaie(/(\[\/image etape\])/g,t) t=remplace_tag(/\[image etape\](.+)\[\/image etape\]/g,'<p><div class=imagem><img src="$1"></div></p>',t) t=remblaie(t) //redact etape t=deblaie(/(\[\/redaction\])/g,t) t=remplace_tag(/\[redaction\](.+)\[\/redaction\]/g,'<p><div class=introm><b><u>Devellopement:</u></b><br><br>$1</div></p>',t) t=remblaie(t) //conclusion t=deblaie(/(\[\/conclusion\])/g,t) t=remplace_tag(/\[conclusion\](.+)\[\/conclusion\]/g,'<p><div class=conclb><b><u>Conclusion:</u></b><br><br>$1</div></p>',t) t=remblaie(t) //apercu t=deblaie(/(\[\/apercu\])/g,t) t=remplace_tag(/\[apercu\](.+)\[\/apercu\]/g,'<p><div class=imageb><img src="$1"></div></p>',t) t=remblaie(t) //credit t=deblaie(/(\[\/credits\])/g,t) t=remplace_tag(/\[credits\](.+)\[\/credits\]/g,'<p><div class=creditb><b><u>credits:</u></b><br><br>$1</div></p>',t) t=remblaie(t) //credit t=deblaie(/(\[\/credits\])/g,t) t=remplace_tag(/\[credits\](.+)\[\/credits\]/g,'<p><div class=creditb><b><u>credits:</u></b><br><br>$1</div></p>',t) t=remblaie(t) //FIN Information - Attention - Erreur - Question // DEBUT Liste //FIN Liste //SMILIES DEBUT // smilies t=remplace_tag(/;D/g,'<img src="design/smilies/clin.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/D:/g,'<img src="design/smilies/triste.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:hihi:/g,'<img src="design/smilies/hihi.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:-o/g,'<img src="design/smilies/siffle.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies Smile t=remplace_tag(/:D/g,'<img src="design/smilies/smile.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:heureux:/g,'<img src="design/smilies/heureux.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:p/g,'<img src="design/smilies/langue.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:lol:/g,'<img src="design/smilies/rire.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:euh:/g,'<img src="design/smilies/unsure.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:o/g,'<img src="design/smilies/huh.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:colere:/g,'<img src="design/smilies/mechant.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/o_O/g,'<img src="design/smilies/blink.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:magicien:/g,'<img src="design/smilies/magicien.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:coler:/g,'<img src="design/smilies/angry.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:diable:/g,'<img src="design/smilies/diable.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:ange:/g,'<img src="design/smilies/ange.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:ninja:/g,'<img src="design/smilies/ninja.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:x:/g,'<img src="design/smilies/pinch.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:_pirate:/g,'<img src="design/smilies/pirate.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:zorro:/g,'<img src="design/smilies/zorro.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:rouge:/g,'<img src="design/smilies/rouge.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:soleil:/g,'<img src="design/smilies/soleil.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:_pleure:/g,'<img src="design/smilies/pleure.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:waw:/g,'<img src="design/smilies/waw.png" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) //DEUXIEME SERIE // smilies t=remplace_tag(/;-D/g,'<img src="design/smilies/clin_deux.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:-DD/g,'<img src="design/smilies/freedent.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:gruncho:/g,'<img src="design/smilies/grucho.gif" class="picto" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:gun:/g,'<img src="design/smilies/gun.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:lol_deux:/g,'<img src="design/smilies/lol.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:love:/g,'<img src="design/smilies/love.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:mdr:/g,'<img src="design/smilies/mdr.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:nan:/g,'<img src="design/smilies/naaan.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:noir:/g,'<img src="design/smilies/noir.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:_pfff:/g,'<img src="design/smilies/pfff.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:ring:/g,'<img src="design/smilies/ring.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:ring:/g,'<img src="design/smilies/siffle_deux.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:-D/g,'<img src="design/smilies/smile_deux.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:sniff:/g,'<img src="design/smilies/sniff.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:tongue:/g,'<img src="design/smilies/tongue.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/D-:/g,'<img src="design/smilies/triste_deux.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:yeepee:/g,'<img src="design/smilies/yeepee.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:yurk:/g,'<img src="design/smilies/yurk.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:zibou:/g,'<img src="design/smilies/zibou.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // smilies t=remplace_tag(/:siffle_deux:/g,'<img src="design/smilies/siffle_deux.gif" class="picto" alt="" />',t) t=remblaie(t) t=unkhol(t) t=nl2br(t) // return t // //SMILIES FIN //DEBUT INFO - ATTENTION - ... //FIN INFO - ATTENTION - ... } function deblaie(reg,t) { textarea=new String(t); return textarea.replace(reg,'$1\n'); } function remblaie(t) { textarea=new String(t); return textarea.replace(/\n/g,''); } function remplace_tag(reg,rep,t) { textarea=new String(t); return textarea.replace(reg,rep); } function nl2br(t) { textarea=new String(t); return textarea.replace(/\n/g,'<br/>'); } function nl2khol(t) { textarea=new String(t); return textarea.replace(/\n/g,ptag); } function unkhol(t) { textarea=new String(t); return textarea.replace(new RegExp(ptag,'g'),'\n'); } function nl2br(t) { textarea=new String(t); return textarea.replace(/n/g,'<br/>'); } function nl2khol(t) { textarea=new String(t); return textarea.replace(/n/g,ptag); } function unkhol(t) { textarea=new String(t); return textarea.replace(new RegExp(ptag,'g'),'\n'); }

Eléphant du PHP | 106 Messages

30 nov. 2006, 19:43

voila en fait j'ai trouver mon probleme lorque j'enleve cette ligne cela marche :
// <	
		t=remplace_tag(/</g,'<',t)
        t=remblaie(t)
        t=unkhol(t)
        t=nl2br(t)
// >
		 t=remplace_tag(/>/g,'>',t)
        t=remblaie(t)
        t=unkhol(t)
        t=nl2br(t)
Alors commet dois-je faire pour suprimer le html et le rendre inactif??

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

01 déc. 2006, 12:33

hmmm... est ce normal que tes fonctions nl2br(), nl2khol() et unkhol() soient déclarée 2 fois ?

par ailleurs, n'y a-t-il pas un sérieux problème de logique dans cette partie de code :
// <     
        t=remplace_tag(/</g,'<',t) 
        t=remblaie(t) 
        t=unkhol(t) 
        t=nl2br(t) // remplace les retours à la ligne par des "<br />"
// > 
         t=remplace_tag(/>/g,'>',t) // va te donner un paquet de "<br />"
        t=remblaie(t) 
        t=unkhol(t) 
        t=nl2br(t)
Tu n'as besoin de faire appel au nl2br qu'une seule fois, à la fin de ton traitement, et c'est probablement pareil pour les autres... ca va considérablement l'accélerer et le simplifier :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 106 Messages

01 déc. 2006, 13:36

merci je teste cela c soir. :D :D 8) :P