webForumDet fria alternativet

Radbrytning i fraser felaktiga i json-response

JavaScriptur Javascript

0 svar · 863 visningar · startad av MickeA.com

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

Tjena hej!

Vet inte riktigt var det här hör hemma, men troligtvis här. Ett PHP-script returnerar en fras som visas i en alertruta, med hjälp av jQuery:

$.ajax({
	url: $(this).attr("action"),
	type: "POST",
	data: { },
	dataType: "json",
	error: function(){ },
	success: function(data){
		alert(data.returnMsg);
	}
});

data.returnMsg är en PHP-array som jag skriver ut med hjälp av json_encode($arr);

Följande fungerar klockrent:

$Res = array(
	"returnMsg" => "Foo\nBar",
);
echo json_encode($Res);

Det blir en radbrytning i alert-rutan, precis som det ska. Men nu hämtar jag fraserna från en XML-fil:

<Item Name="LBL_ACCOUNT_HAS_BEEN_CREATED" Page="1" Js="0">
	<Value>Foo\nBar</Value>
</Item>

Och då blir det Foo\nBar i alertrutan. Kollar jag responsen i Chrome Debugger blir det \\n istället för \n.

Om jag gör radbrytning i XML-filen:

<Item Name="LBL_ACCOUNT_HAS_BEEN_CREATED" Page="1" Js="0">
	<Value>Foo
	Bar</Value>
</Item>

...så fungerar det också.

Men \n översätts inte, utan escapas istället. Osäker på om felet ligger i XML-filen, i PHP-scriptet eller jQuery.

Såhär ser JSON-responsen ut, den första Foo\nBar radbryts, den andra kommer från XML-filen och fungerar inte:

{"hasError":true,"msgError":["Foo\nBar","Foo\\nBar"],"fldError":[],"returnUrl":"\/","returnMsg":"Foo\\nBar"}

Någon som vet varför?

Tack!

133 ms totalt · 3 externa anrop · v20260731065814-full.a2ca460b
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)