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 lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
<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.