12. januar 2006 - 09:03Der er
12 kommentarer og 1 løsning
Gemme linieskift i textarea?
Jeg har en formular der hvor man skal indføre noget tekst foretages (bemærk linieskift i denne formular). Jeg oplever at de linieskift brugeren indfører i textarea ikke bliver overført til databasen, og da teksten til tider ret omfattende ville det være rart hvis dette skete. Hvordan? P.t. ser min kode i forkortet form således ud.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<script language="JavaScript" type="text/javascript"> function test_af_submit(id){ str = document.getElementById(id).value; str = str.replace(/^ +/,""); str = str.replace(/ +$/,""); if (str == ''){ window.alert('Du mangler at udfylde tekstfeltet'); return false; } return true; } function sikring(id){ if (test_af_submit(id) == false) return false; tjek = window.confirm('Kan du godkende at teksten:\n"'+document.getElementById(id).value+'"\nsendes til brugeren?'); if (tjek == false) return false; return true; } </script> ... ... <form name="formen" action="sag_action_ex.php" method="post" target="_self"> <textarea id="felt" name="text" rows="6" cols="60"></textarea> <input type="submit" name="type" value="Tilføj notat" onclick="return sikring('felt')">
Desuden ønsker jeg samtidig at tekst vises i et <td>-felt på siden næste gang siden åbnes. Det er på dette tidspunkt linieskiftet får betydning. Det går ikke at indføre <br>-felter når teksten gemmes i MySQL da den nogle gange, men ikke altid, også skal sendes i en autogenereret mail.
jeg har heller ikke sagt at du skal gemme <br> i databasen - du må under ingen omstændigheder ændre på det en bruger har skrevet i et tekstfelt, det er først når du hiver data ud af databasen at du skal tilpasse det til formålet hvilket på web vil sige at du skal replace VbCrLf med <br> og til mail enten det samme eller bare lade VbCrLf være VbCrLf.
Jeg anvender PHP. Jeg har lige kikket på den tekst der rent faktisk bliver gemt i MySQL. Linieskift bliver gemt som [DOBBELT VENSTREPIL][SPELVENDT P], hvad enten man anvender return- el. enter-tast. Mvh Christian
Hvad præcis der bliver vist i databasen kan du ikke helt regne med - fx kan man reelt se linieskiftet i access hvorimod det i oracle vises som ||||. Det vigtige at holde sig for øje i hvert fald er at man ikke må ændre på det brugeren har skrevet i formfelter før data trækkes ud af basen.
Skal det forstås således at det i virkeligheden er et PHP-spørgsmål? Altså: Hvordan udskifter jeg '«¶' med henholdsvis '<br>' (<td>-felt) og '\n' (mail) når jeg henter teksten fra db ind i mit php-script? Hvis ja - så må du undskylde. Jeg vil så stille spørgsmålet til php-programmørerne. Under alle omstændigheder - Giv et SVAR
Jo foresten - et ægte JavaScript-spørgsmål. Funktionen 'test_af_submit()' sikrer med en alert at textarea rent faktisk er udfyldt før submit udføres. Jeg opdager pludselig at der submittes hvis jeg udelukkende indfører linie-skift med return/enter. Hvordan skal min str.replace() udformes for at sikre at dette ikke sker?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.