2009-07-26 12 views
6

Próbuję użyć Ajax z JQuery, co chcę zrobić, to po prostu wysłać wartość pola tekstowego multiline do php z Ajax.usunąć nową linię podczas wysyłania żądania do serwera za pośrednictwem Ajax Post z JQuery

Używam tego kodu, to wysyła wartość txtAnswer do php, niestety, usuwa nowe linie (\ n) z danych. Jak mogę rozwiązać ten problem ... Z góry dziękuję.

$.post(
    'post-answer.php', 
    { 
     answer: $("#txtAnswer").val(), 
     qid: <?= $question_ID ?> 
    }, 
    function (ajaxResponse) { 
     $('#answers').html(ajaxResponse) 
    } 
    ); 
+0

Skąd masz usunięte nowe linie? Kiedy otrzymujesz od klienta lub kiedy go wyprowadzasz? – Nathan

Odpowiedz

3

jesteś pewien \ n są usuwane? Co się stało, jeśli umieścić to w pliku php:

<?php 
print_r($_REQUEST['answer']); 
?> 

użyciu Firebug widać wyjście i być pewien, czy \n istnieją czy nie.

nigdy nie słyszeć o jQuery lub prototyp usuwania \n

pamiętać, że jeśli chcesz, aby pokazać nowe linie na formacie html trzeba konwertować je do <br/>. Które myślę, że próbujesz zrobić.

W tym celu można użyć nr2br.

4

Znam również ten problem. Mam element div aktualizujący podgląd, gdy użytkownik wpisuje tekst w pole tekstowe. Oto co znalazłem pracę w mojej sytuacji:

jQuery('#task_description').keyup(function() { 
    jQuery('#pre_description').html(jQuery('#task_description').val().replace(/\n/g, '<br \\>')); 
} 
2

Używam .ajax z rodzaju: post i to oszczędność nowe linie dla mnie

+0

Właściwie to nie przeszkadzało, kiedy już ustawiłem typ żądania .ajax na POST, naprawił to (przy pomocy GET traci nowe linie). – justinl

+0

Przełączenie GET na POST rozwiązało to dla mnie. – epaps

6

Spróbuj: escape($("#txtAnswer").val())

= -)

+0

To jest odpowiedź, dzięki! – ozz

+1

Escape jest przestarzałe: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape – mikemaccana

Powiązane problemy