webForumDet fria alternativet

Infoga HTML kod i en textarea

1 svar · 386 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 528 inlägg
#1

Hej,

Har en textarea med lite HTML kod. Nu har jag byggt en funktion för att hämta htmlkod från en databas via ajax och den här koden som returneras vill jag sätta in i min textarea.

Funktionen som tar hand om ajaxresponsen ser ut såhär:

function cbPasteContent(response){
	var result = response.split("|");
	var status = parseInt(result[0]);
	if(status == 200){
		document.forms['content_add'].cont_text.value += result[ 1 ];
		alert("The content has been inserted!\n");
	}else{
		message = "An error occurred:\n";
		for(i = 1; i <= result.length - 1; i++){
			message += "  - " + result[ i ] + "\n"; 	
		}
		alert(message);
	}
}

I koden ovan är result[ 1 ] det mitt phpscript skriver ut.

Problemet är att när koden sätts in, strippas all htmlkod bort. I det här fallet är det delar av en tabell som klistras in, men alla <tr> och <td> strippas bort och kvar blir bara själva värdet i varje cell.

Måste jag escape'a koden på något sätt?
Min phpkod ser ut såhär:

$output = "<!-- start '" . $res['cont_name'] . "' -->\n";
$output .= $res['cont_content'];
$output .= "<!-- end '" . $res['cont_name'] . "' -->\n";

Det som är så hemskt sjukt är att <!-- --> skrivs ut i textarean, men inte någon av den htmlkod som finns i $res['cont_content'].

Vad kan vara fel?

MickeA.comMedlem sedan feb. 20034 528 inlägg
#2

Nu har jag testat lite mer och om jag kör htmlspecialchars() i PHP koden och sen result[1].replace(/</ig, "<"); i javascriptet så blir alla < rätt.

Men det måste finnas någon lösning som är "rätt"?

124 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
121 ms — hämta tråd, inlägg och bilagor (db)