append et textarea

ViPHP
xTG
ViPHP | 7331 Messages

28 mars 2012, 18:37

Enlèves le second var car ça doit redéfinir la variable, donc la réinitialiser.

Mammouth du PHP | 725 Messages

29 mars 2012, 03:34


Mammouth du PHP | 725 Messages

30 mars 2012, 09:25

Code : Tout sélectionner

var bbcode = ['\[b\]', '\[/b\]', '\[i\]', '\[/i\]']; var html = ['<b>', '</b>', '<i>', '</i>']; for (var i = 0; i < bbcode.length; i++) { txt = txt.replace(bbcode[i], html[i]); }

alors ici:

[b-]test1[-/b]
[b-]test2[-/b]

resultat:

test1 [-b]test2[-/b]

le premier est en gras, le 2eme non

j'ai mis (-) pour ne pas etre affecte au forum

ViPHP
xTG
ViPHP | 7331 Messages

30 mars 2012, 10:29

J'ai effectué quelques tests mais j'ai pas réussi à sortir un résultat avec une boucle. O_o

Code : Tout sélectionner

var txt = '[b]gras[/b] et [b]gras[/b]'; var bbcode = ['\[b\]', '\[/b\]', '\[i\]', '\[/i\]']; var html = ['<b>', '</b>', '<i>', '</i>']; alert(txt.replace(/\[b\]/g, '<b>')); /* for (var i = 0; i < bbcode.length; i++) { txt = txt.replace(new RegExp(bbcode[i],"g"), html[i]); } */
Le premier fonctionne à la perfection...
Mais la boucle fait n'importe quoi elle n'interprète pas les [ et ] malgré les antislashs...

Mammouth du PHP | 725 Messages

30 mars 2012, 16:23

je ne sais pas pourquoi, portant sur le site ca marche

Mammouth du PHP | 725 Messages

30 mars 2012, 17:46

voila le code en entier:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>

<style>
#preview{
	white-space: pre-line;
}
</style>

<script type="text/javascript" src="../jquery.js"></script>

<script>
function insertTag(startTag, endTag, textareaId, tagType) {
        var field  = document.getElementById(textareaId); 
        var scroll = field.scrollTop;
        field.focus();
        
        if (window.ActiveXObject) { // C'est IE
                var textRange = document.selection.createRange();            
                var currentSelection = textRange.text;
                
                textRange.text = startTag + currentSelection + endTag;
                textRange.moveStart("character", -endTag.length - currentSelection.length);
                textRange.moveEnd("character", -endTag.length);
                textRange.select();     
        } else { // Ce n'est pas IE
                var startSelection   = field.value.substring(0, field.selectionStart);
                var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
                var endSelection     = field.value.substring(field.selectionEnd);
                
                field.value = startSelection + startTag + currentSelection + endTag + endSelection;
                field.focus();
                field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
        } 

        field.scrollTop = scroll; // et on redéfinit le scroll.
}



$(document).ready(function(){
	 
	function preview() {

	var bbcode = ['\[b\]', '\[/b\]', '\[i\]', '\[/i\]', '\n'];
	var html = ['<b>', '</b>', '<i>', '</i>', '<br />'];
	var txt = $('.formatageCols').val();
	
		/*
		#################### Loop ##########################
		*/
		
		for (var i in bbcode) {
			txt = txt.replace(bbcode[i], html[i]);
			
		}
		
		$("#preview").html(txt);
		}
		
 	$('.formatageCols').keyup(preview);
 
  });
</script>


</head>

<body>

<div dir="rtl">

<div id="preview"></div>

<form name="formatage" class="formatage" dir="rtl">
<img src="bold.gif" style="cursor: pointer;" onclick="insertTag('[b]','[/b]','textarea');" class="Icons" title = "bold.gif" />

&nbsp;

<img src="italic.gif" style="cursor: pointer;" onclick="insertTag('[i]','[/i]','textarea');" class="Icons" title = "italic.gif" />

<br />

<textarea cols="60" rows="10" dir="rtl" id="textarea" class="formatageCols"></textarea>

</form>

</div>
 
essayer de tester par:
[b]test1[/b]

[i]test2[/i]
[i]test3[/i]


[b]test4[/b]