2011-04-04 81 views
3

我在textarea中出現了換行符問題。jquery .val()沒有在文本區域中返回換行符

我得到.VAL()函數的文本:

var messageBody = $('#composeInput').val(); 

這是我的Ajax請求

$.ajax({ 
    url: 'serverScripts/messages/addMessage.php', 
    data: 'messageBody='+messageBody+'&invitedJSONText='+invitedJSONText, 
    success: function(){ 
     //Do something 
    } 
}); 

和PHP:

$messageBody = nl2br(mysql_real_escape_string($_GET['messageBody'])); 

文本:

嗨!

你好嗎?

變爲:

嗨!你好嗎?

如果我將變量messageBody插入另一個div元素,我看不到任何\ n是正常的。我該如何解決?

回答

14

當您傳遞字符串作爲數據參數時,必須對其進行網址編碼這樣的:

'messageBody=' + encodeURIComponent(messageBody) + '&invitedJSONText=' + encodeURIComponent(invitedJSONText) 

如果您傳遞的參數爲對象,jQuery的負責編碼的數據:

$.ajax({ 
    url: 'serverScripts/messages/addMessage.php', 
    data: { 
     messageBody: messageBody, 
     invitedJSONText: invitedJSONText 
    }, 
    success: function (data, textStatus, jqXHR) { 
     $("#foo").html(data); // <-- did something 
    } 
}); 
+0

感謝這一個工作!你是否也知道如何將'messageBody'插入div元素? – einstein 2011-04-04 05:52:08

0

你可能想看看PHP的nl2br函數。換行符不會在瀏覽器中顯示,因此您必須使用換行符替換它們.http://us.php.net/nl

+1

我看他在他的問題中提到'nl2br()'。 – Marcel 2011-04-04 05:41:17

+0

已經看過它。當我查看get參數時,我看不到任何\ n? – einstein 2011-04-04 05:43:11