Textarea
Manuela
- html
Hallo,
ich hab folgenden Code für ein mehrzeiliges Textfeld:
<textarea name="Remarks:" value=" " rows=3 cols=40 wrap="physical" tabindex=7></textarea
nun sollt doch beim absenden des Formulars Zeilenumbrüche drin sein als \n, da sind aber keiene drin und somit wird es auf der Darstellenden Seite sehr unschön. Kann mir jemand sagen was ich machen muss, das da Zeilenumbrüche mit gesendet werden ??
THX Manuela
Hoi Manuela
Wie überprüfst Du (und kommst zum Schluss) dass keine \n übermittelt werden?
cheers
kaepten
Hoi Manuela
Wie überprüfst Du (und kommst zum Schluss) dass keine \n übermittelt werden?
Indem ich mir das übergebene beim Aufruf der Seite in einem Dialogfled( mit alert... ) anzeigen lasse.
cheers
kaepten
Hoi Manuela
Indem ich mir das übergebene beim Aufruf der Seite in einem Dialogfled( mit alert... ) anzeigen lasse.
Die Zeilenumbrüche sind da. Sie sind nur anders codiert. Mit alert benötigst Du das besagte \n . Die Zeilenumbrüche werden vom Formularfeld als %0D%0A codiert. Das heisst also, dass Du zuerst den Text nach %0D %0A durchsuchen und durch \n ersetzen musst!
HTH
kaepten
Hoi Manuela
Indem ich mir das übergebene beim Aufruf der Seite in einem Dialogfled( mit alert... ) anzeigen lasse.
Die Zeilenumbrüche sind da. Sie sind nur anders codiert. Mit alert benötigst Du das besagte \n . Die Zeilenumbrüche werden vom Formularfeld als %0D%0A codiert. Das heisst also, dass Du zuerst den Text nach %0D %0A durchsuchen und durch \n ersetzen musst!
Das ist soweit richtig, das Problem ist das ich die Daten aus dem mehrzeiligen Textfeld an die nächste Seite übergebe und die dann in einer Tabelle anzeigen lassen will. Also müßte ich ja die angeblich mitgesendeten Zeilenumbrüch durch <br> ersetzten. Es wird aber werder ein \n noch %0D%0A mitgesendet.
Die alert-Ausgabe war nur zum nachsehen für mich eingefügt.
HTH
kaepten
Hoi Manuela
Es wird aber werder ein \n noch %0D%0A mitgesendet.
Was wird dann gesendet? Ich kann Dein Problem leider nicht nachvolziehen...
Zeig mir doch mal Deinen Code.
kaepten
Hoi Manuela
Es wird aber werder ein \n noch %0D%0A mitgesendet.
Was wird dann gesendet? Ich kann Dein Problem leider nicht nachvolziehen...
Zeig mir doch mal Deinen Code.
Okay der Code für die Seite wo ich die Daten eingebe und abschicke sieht so aus:
<form id="form1" action="Bestellformular.html" method="GET" target="_self">
<table width = 85% cellpadding=10 border=0 cellspacing=1 name ="tabelle1" align="center">
<tr>
<td width=500 height=500 valign="top">
<table width = 100% cellpadding=1 border=0 cellspacing=1 name ="tabelle2" align="center">
<tr>
<td colspan="2" class = "bestellBes"> <br><div align="center"><font size="+4">Order information</font></div>
<br></td>
</tr>
<tr>
<td class = "bestellBes">Customer name:</td>
<td align ="left"> <input type="text" name="Customer name:" value=" " size=40 maxlenght=40 tabindex=1></td>
</tr>
<tr>
<td class = "bestellBes"><br>Company:</td>
<td align ="left"><br><input type="text" name="Company:" value=" " size=40 maxlenght=40 tabindex=2> </td>
</tr>
<tr>
<td class = "bestellBes"><br>Street,No.:</td>
<td align ="leftt"><br><input type="text" name="Street,No:" value=" " size=40 maxlenght=40 tabindex=3> </td>
</tr>
<tr>
<td class = "bestellBes"><br>Zip-Code:</td>
<td align="left"><br> <input type="text" name="Zip-Code:" value=" " size="10" maxlenght="10" tabindex=4></td>
</tr>
<tr>
<td class = "bestellBes"<font size="+3"></font><br>City:</td>
<td align="left"><br> <input type="text" name="City:" value=" " size=40 maxlenght=40 tabindex=5></td>
</tr>
<tr>
<td class = "bestellBes"><br>Date:</td>
<td align ="left"><br><input id="Uhr" type="text" name="Date:" value=" " size=40 maxlenght=40 tabindex=6></td>
</tr>
<tr>
<td class = "bestellBes"><br>Remarks:</td>
!!!!!!!!!<td align ="left"><br> <textarea name="Remarks:" value=" " rows=3 cols=40 wrap="physical" tabindex=7></textarea></td>
</tr>
<tr>
<td></td>
<td align ="center"><br><br><input type="Submit" value="okay" tabindex=8></td>
</tr>
</table>
</table>
</form>
die Stelle mit den vielen !!!-Zeichen betrifft das Textfeld.
So und der Code auf der Empfangsseite ist folgender:
<script language="javascript" type="text/javascript">
<!--
var formular = new Array(0);
decode();
/* Diese Funktion decodiert die Angaben im Pfad */
function decode()
{
var url = window.location.search;
!!!!!!! wen ich an dieser Stelle alert(url); mache kann ich mir ja anzeigen lassen was von den Daten ankommt und da steht werder \n noch %0D%0A drin für die eigentlich mitgesendeten Zeilenumbrüche des Textfeldes !!!!!!!
if (url != "")
{
url = url.substring(1,url.length); // Die Daten werden aus der
var a = 30;
// Url extrahiert und in
liste = url.split("&"); // Wertepaare am & getrennen
for (i=0;i<=liste.length-1;i++)
{
temp = liste[i].split("="); // Feld und Daten jedes
formular.splice(formular.length,2,temp[0],temp[1]); // Paares werden zerlegt
}
for (i=0;i<=formular.length-1;i++)
{
for(x=0;x<=formular[i].length; x++)
{
if(x >a)
{
a = a+30;
alert("neue Zeile");
}
}
formular[i] = formular[i].replace(/+/g," "); // Ersetzen des + durch Blank
formular[i] = unescape(formular[i]); // Escapesequenzen rekonstruieren
if(formular[i]== " ")
{
formular[i]= "-";
}
}
}
}
//-->
</script>
<body text="#000000"background="../Bilder/WHITE1.jpg" bgcolor="#FFFFFF" link="#0000FF" alink="#FF0000" vlink="#FF0000">
<table width = 100% cellpadding=10 border= 0 cellspacing=1 name ="tabelle1" align="center">
<tr>
<td width=70% height=500 valign="top" align="center">
<table border= 0 cellpadding=5 cellspacing= 0 width=90% align="center">
<tr>
<td colspan="2" align="center"><font size=5 color="#000000"><big><b><u>order form</u><b></big></font><br><br></td>
</tr><pre>
<script>
<!--
for(var i=0;i<formular.length;i++)
{
document.write("<tr><td class=bestellBes>" + formular[i] + "<br><br></td>");
document.write("<td class=bestellBes>" + formular[++i] + "<br><br></td></tr>");
}
//-->
</script></pre>
</table>
<br>
<input type = button value="print order form " onClick="javascript:window.print()">
</td>
<td width=250 height=500 background="../Bilder/WHITE2.jpg" valign "top">
<font size=3 color="#000000"><script>document.write(parent.Bestell_Speich)</script></font>
</td>
</tr>
</table>
kaepten
Hoi Manuela
Bei mir werden besagte Zeilenumbrüche übertragen.
Du machst hier ein Replace
formular[i] = formular[i].replace(/+/g," "); // Ersetzen des + durch Blank
und dann ein unescape!
formular[i] = unescape(formular[i]); // Escapesequenzen rekonstruieren
Den zwei Codes %0D%0A kann man Auch Escpae-Sequenzen sagen. Also ist klar, dass es nicht angezeigt wird, wenn Du sie rausfilterst!
Allerdings muss ich sagen, dass Du in den oberen Zeilen wo Du
alert(url);
machst sehr wohl diese Escape Zeichenfolgen sehen solltest! Versuche mal folgeden Änderung/zustätzliche Zeile im Script:
formular[i] = formular[i].replace(/+/g," "); // Ersetzen des + durch Blank
formular[i] = formular[i].replace(/%0D%0A/g,"<br>"); // Ersetzen der Zeilenumbrüche durch <br>
formular[i] = unescape(formular[i]); // Escapesequenzen rekonstruieren
Bei mir funktioniert jedenfalls so Dein Code!
cheers und Mahlzeit
kaepten
Hoi Manuela
Bei mir werden besagte Zeilenumbrüche übertragen.
Du machst hier ein Replace
formular[i] = formular[i].replace(/+/g," "); // Ersetzen des + durch Blank
und dann ein unescape!
formular[i] = unescape(formular[i]); // Escapesequenzen rekonstruieren
Den zwei Codes %0D%0A kann man Auch Escpae-Sequenzen sagen. Also ist klar, dass es nicht angezeigt wird, wenn Du sie rausfilterst!
Allerdings muss ich sagen, dass Du in den oberen Zeilen wo Du
alert(url);
machst sehr wohl diese Escape Zeichenfolgen sehen solltest! Versuche mal folgeden Änderung/zustätzliche Zeile im Script:
formular[i] = formular[i].replace(/+/g," "); // Ersetzen des + durch Blank
formular[i] = formular[i].replace(/%0D%0A/g,"<br>"); // Ersetzen der Zeilenumbrüche durch <br>
formular[i] = unescape(formular[i]); // Escapesequenzen rekonstruieren
Bei mir funktioniert jedenfalls so Dein Code!
cheers und Mahlzeit
kaepten
Der Code funktioniert auch bei mir, aber nur wenn ich die Entertaste nach jeder Zeile von hand drücke. Laut Selfhtml Dockumentation soll aber in Textarea's der automatische Zeilenumbruch mitgesendet werden und das funzt bei mir net.
Guten Appetit
Manuela
Hoi Manuela
Mit vollem Bauch gehts weiter! Nun muss ich aber mit Dir schimpfen! Erst jetzt verstehe ich Dein _wirkliches_ Problem, warum sagtest Du das nicht früher. Du beziehst Dich nur auf die Umrüche die automatisch durch das <textarea wrap="physical" ... generiert werden und nicht auf diejenigen die mit <Enter> gemacht werden.
Wenn das so ist, dann bin ich auch überfragt. Es geht auch bei mir nicht (IE6). Sorry.
Aber einen Hinweis habe ich noch:
Die Formularfelder mit Name z.B. "Customer name:" würde ich wirklich nicht machen. Du hast alle Formularfelder-namen mit doppelpunkt und z.T. mit Leerschlag. Das finde ich sehr unschön, da dann die Variable als: "Customer+name%3A übermittelt wird.
cheers
kaepten
PS: Mach doch einen neuen Beitrag und formuliere Dein Problem präziser. Ich bin sicher dass es Leute gibt, die wissen wie, was, warum das <textarea wrap="physical" ... nicht sauber geht.
hallo,
Mit vollem Bauch gehts weiter! Nun muss ich aber mit Dir schimpfen! Erst jetzt verstehe ich Dein _wirkliches_ Problem, warum sagtest Du das nicht früher. Du beziehst Dich nur auf die Umrüche die automatisch durch das <textarea wrap="physical" ... generiert werden und nicht auf diejenigen die mit <Enter> gemacht werden.
will mich ja nicht einmischen, aber mir war eigentlich schon klar was sie wollte (weiss nur eben auch nicht bescheid...)
gruss,
Blau
Hoi Blau
ok, dann nehm ich es wohl auf meine Kappe. Habs echt nicht verstanden ...
kaepten
Hoi Blau
ok, dann nehm ich es wohl auf meine Kappe. Habs echt nicht verstanden ...
Nimms nicht krumm !! Ich hab mittlerweile eine Lösung gefunden, ist vielleicht nicht die schönst, aber sie geht. Ich ermittle einfach beim auslesen die Gesamtlänge und lege fest,das nach einer bestimmten anzahl von Zeichen ein \n eingefügt werden soll.
Siehe weiter oben im Forum.
kaepten
Vielen Dank für die Mühe
Manuela
falls du das glück hast und auf einem windows server bist kannst du folgenden ASP code verwenden:
<%=Replace(Request.Form("beschreibung"), vbCrLf, "<br>" & vbCrLf)%>
funkt einwandfrei!
beachte: deine .htm musst du auf .asp umtaufen