使用jQuery jqXHR responseText的警报窗口中的新行

时间:2014-03-12 12:38:28

标签: javascript php jquery string alert

我目前正在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;

2 个答案:

答案 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" );
});