在警告窗口新行jQuery jqXHR responseText

New line in alert window with jQuery jqXHR responseText

本文关键字:jqXHR responseText jQuery 新行 警告 窗口      更新时间:2023-09-26

我目前通过jQuery请求一些php页面上的文本。问题是新的行符号'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);
所以为了调试,我决定将php响应字符串(这是之前的字符串)直接粘贴在alert()函数中,在这种情况下,新行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获取它时,新的行不能工作。有人知道吗?

EDIT: 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;

你用错引号了。在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;

我不知道我是否理解得很好,但是你可以试试

$.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" );
});
相关文章: