我目前正在php页面上通过jQuery请求一些文本。问题是新的行符号\n
显示在警告窗口中,并且不会被解释为新行。我不会随时逃脱弦乐
在我的jQuery请求的error: function(..)
块中,我通过jqXHR.responseText
获取php返回的字符串,这是它的确切值:
Some fields are empty!\n$name= \n$schedule= 480;1140;480;1140;480;1140;480;1140;480;1140;480;1140;480;1140\n$free_connection= false\n$free_coffee= false\n$rating= -1\n$lat= 44.715513732021336\n$lng= 1.9775390625\n
当我这样做时,新行不工作:
alert(jqXHR.responseText);
所以为了调试,我决定直接在alert()
函数中粘贴php响应字符串(这是前一个字符串),在这种情况下,新行 WORK :
alert("Some fields are empty!\n$name= \n$schedule= 480;1140;480;1140;480;1140;480;1140;480;1140;480;1140;480;1140\n$free_connection= false\n$free_coffee= false\n$rating= -1\n$lat= 44.715513732021336\n$lng= 1.9775390625\n)");
字符串完全相同,但是当我使用jqXHR获取它时,新行不起作用。 有人有任何线索吗?
编辑:生成字符串的PHP代码:
$errorMessage = 'Some fields are empty!' . '\n'
. '$name= ' . $name . '\n'
. '$schedule= ' . $schedule . '\n'
. '$free_connection= ' . $free_connection . '\n'
. '$free_coffee= ' . $free_coffee . '\n'
. '$rating= ' . $rating . '\n'
. '$lat= ' . $lat . '\n'
. '$lng= ' . $lng . '\n';
echo $errorMessage;
答案 0 :(得分:2)
您使用了错误的报价类型。在PHP中,转义序列不用单引号处理,只能用双引号处理。所以它应该是:
$errorMessage = 'Some fields are empty!' . "\n"
. '$name= ' . $name . "\n"
. '$schedule= ' . $schedule . "\n"
. '$free_connection= ' . $free_connection . "\n"
. '$free_coffee= ' . $free_coffee . "\n"
. '$rating= ' . $rating . "\n"
. '$lat= ' . $lat . "\n"
. '$lng= ' . $lng . "\n";
echo $errorMessage;
答案 1 :(得分:0)
我不知道我是否理解得很好但你可以尝试
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
或
$.getJSON( "ajax/test.json", function( data ) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
});