xmlHttpRequest -- senddata aus Textarea, line break omited
Chris
- javascript
Hallo!
Ich schicke ein Formular asynchron an den Server und werte u.a. Daten aus einer TEXTAREA aus. Die Textarea verarbeitet sinnvollerweise auch Zeilenumbrüche.
Dummerweise kommt aber am Server nur ein gekappter Querystring an, und zwar wird gehen alle Daten ab dem ERSTEN ZEILENUMBRUCH verloren...
Gibts für Javascript auch so eine nl2br Funktion wie in PHP o.ä.? Mir kommt dieses Problem auch das erste Mal unter - ist das normal, dass Zeilenumbrüche verloren gehen?
var form_elements = document.forms['dialogue_shoutbox'].elements;
var p_id = form_elements['p_id'].value;
var det_id = form_elements['det_id'].value;
var name = form_elements['name'].value;
var emailaddress = form_elements['emailaddress'].value;
var message = form_elements['message'].value;
var senddata = 'p_id='+p_id
+'&det_id='+det_id
+'&name='+name
+'&message='+message
+'&emailaddress='+emailaddress;
xml_new_shout.open("POST", "xmlHttpRequest/new_shout.php", false);
xml_new_shout.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xml_new_shout.onreadystatechange = function f() { if (xml_new_shout.readyState == 4) if (p_id == PROC_NEW) load_shout_items(shout_min_pInd); else load_shout_items(shout_curr_pInd); } // reload the current page
xml_new_shout.send(senddata);
Gibts für Javascript auch so eine nl2br-Funktion wie in PHP o.ä.?
Nein, zumal du dann das Problem hast, die per Funktion erzeugten <br /> von jenen zu unterschieden, die der Benutzer eingegeben hat ("passiert schon nicht" zählt nicht).
var senddata = 'p_id='+p_id
+'&det_id='+det_id
+'&name='+name
+'&message='+message
+'&emailaddress='+emailaddress;
Du solltest es mit encodeURIComponent() probieren, und zwar bei _allen_ Daten, die du da zusammenbastelst. Überlege dir mal, was passiert, wenn ein Benutzer irgendwo, sei es im Namen oder in der Nachricht, ein Und- oder Gleichheitszeichen eingibt.
Du solltest es mit encodeURIComponent() probieren, und zwar bei _allen_ Daten
Das ist ein guter Punkt. Leider hilft es mit den Zeilenumbrüchen NICHT.
Hallo,
Das ist ein guter Punkt. Leider hilft es mit den Zeilenumbrüchen NICHT.
Sollte es aber. Wie prüfst du überhaupt, dass die Zeilenumbrüche ankommen?
Gruß
Sollte es aber. Wie prüfst du überhaupt, dass die Zeilenumbrüche ankommen?
Ich lese den Spass darauf wieder aus einem XML Dokument aus.
Die message (inkl. Zeilenumbruch) ist innerhalb eines Tags als nodeValue notiert.
Sollte es aber. Wie prüfst du überhaupt, dass die Zeilenumbrüche ankommen?
Das war DER Tipp!
Jetzt habe ich bei der PHP-XML Generierung statt nl2br($shout->message) gleich htmlspecialchars(nl2br($shout->message)) verwendet...
DANKE!
Hallo,
Ah stimmt, das Problem, dass HTML in XML als PCDATA eingewickelt wird...
Btw: Meine Glaskugel ist unschlagbar :P
Gruß