2014-03-12 68 views
1

我目前通過jQuery在php頁面上請求一些文本。問題在於新行符號\n顯示在警報窗口中,並且不會被解釋爲新行。我在任何時候都不會逃避繩子。
在我的jQuery請求error: function(..)塊,我得到通過jqXHR.responseText由PHP返回的字符串,這裏是它的確切值:在jQuery jqXHR響應文本警報窗口中的新行

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響應字符串(這是以前的字符串),在這種情況下,新線工作

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

你有沒有試過'console.log(jQuery.parseJSON(jqXHR.responseText))'看看實際看起來像什麼? – superphonic

+1

創建一個jsfiddle –

+0

我剛剛嘗試過,這個值就是我引用的那個值:「有些字段是空的!\ 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.902577996288876 \ n $ lng = 3.4716796875 \ n' – user1493046

回答

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