Avatar billede gubien Nybegynder
26. november 2007 - 10:09 Der er 16 kommentarer og
1 løsning

Textarea og linieskift?

Jeg er igang med at lave en mindre "tagwall" i php og mysql og jeg bruger textarea til kommentar feltet.

Men men men... hvis jeg har et textarea og jeg f.eks bruger linieskift... eller vinduet selv skifter ned på næste linie...
hvordan får jeg det så ti lat se ligeledes ud når der postes?

Det er sikkert et simpelt spørgsmål, men jeg er lidt grøn...haha...

/Mvh Thomas
Avatar billede erikjacobsen Ekspert
26. november 2007 - 10:10 #1
Kig på http://php.net/nl2br som du skal bruge, lige før du viser teksten på siden (men ikke i dit textarea).
Avatar billede w13 Novice
26. november 2007 - 15:27 #2
Og hvis du bruger ASP:

str=replace(str,vbCrLf,"<br>")
Avatar billede gubien Nybegynder
27. november 2007 - 18:39 #3
Øhmm.... kan ikke rigtigt se hvordan jeg skal gribe det an...

Jeg har en print function der ser således ud...

print "
<tr>
<td>Svarid</td><td>".$row["svarid"]."</td>
</tr>
<tr>
<td>Fornavn</td><td>".$row["firstn"]."</td>
</tr>
<tr>
<td>Efternavn</td><td>".$row["lastn"]."</td>
</tr>
<tr>
<td>Kommentar</td><td>".$row["kommentar"]."</td>
</tr>
<tr>
<td colspan=\"2\">&nbsp;</td></tr>";
}
print "</table>";
?>

Og som sagt vil jeg have det som brugerne skriver ind i textarea feltet og poster I mysql databasen formatteret som brugeren nu skrev det i textarea feltet.

Er jeg helt ude i hampen? Som sagt er jeg rimelig grøn, så bær over med mig

Mvh Thomas
Avatar billede w13 Novice
27. november 2007 - 19:58 #4
Du bør ikke ændrer det, før du gemmer i databasen - først når du viser det på siden. Brug:

print "
<tr>
<td>Svarid</td><td>".$row["svarid"]."</td>
</tr>
<tr>
<td>Fornavn</td><td>".$row["firstn"]."</td>
</tr>
<tr>
<td>Efternavn</td><td>".$row["lastn"]."</td>
</tr>
<tr>
<td>Kommentar</td><td>".nl2br($row["kommentar"])."</td>
</tr>
<tr>
<td colspan=\"2\">&nbsp;</td></tr>";
}
print "</table>";
?>
Avatar billede gubien Nybegynder
27. november 2007 - 20:53 #5
w13, skide godt det virkede som forventet. Og tak til jer andre for interessen. Dog burde jeg måske have uddybet mig bedre fra start af.
Dog virker det kun når brugeren selv laver linie skift, og ikke når textarea boksen (pga. dens størrelse) bliver tvunget ned på næste linie.

Hvis brugeren f.eks holder "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" inde, vil det ikke blive vist som;

aaaaaaaaa
aaaaaaaaa
aaaaaaaaa
aaaaaaaaa

...selvom det rent faktisk bliver vist sådan i textarea.
Er der en metode at "cutte" efter bredde ?

Mvh Thomas
Avatar billede nielle Nybegynder
27. november 2007 - 21:13 #6
F.eks. vha. denne her:

http://dk2.php.net/wordwrap

Personligt ville jeg dog overveje at slette indlæg som på den åbenlyse måde forsøger at sabotere min tagwall...
Avatar billede w13 Novice
27. november 2007 - 21:39 #7
Gubien>> Normalt giver man point til den, som løser problemet i stedet for at tage dem selv. =) Men jeg kan se, at du er meget ny herinde, så jeg siger det bare, så du ved det til næste gang.

Hvis der ikke er blevet oprettet svar på spørgsmålet, men kun kommentarer, kan du bede personen, som løste problemet, om at oprette et svar, så du kan uddele pointene.
Avatar billede gubien Nybegynder
28. november 2007 - 22:51 #8
w13: Ja jeg ved sq ikke lige hvad jeg lavede...hehe...men du skal selvfølgelig have point. (Så du skal vel oprette et svar, eller hvordan?)

nielle:

Det er helt klart det jeg skal bruge. Jeg har dog prøvet at bruge det uden held.
Jeg brugte det lige efter data  var hentet i databasen, i håb om den ville "wrappe" inden den postede det ud. Det virker bare ikke...(for mig)...haha...

Jeg går ikke ud fra den skal wrappe inden den poster det i databasen? Eller er jeg bare forkert på den?
Avatar billede w13 Novice
28. november 2007 - 23:02 #9
Gubien>> Dit spørgsmål er lukket nu, fordi du selv har taget pointene tilbage. Man kan oprette et nyt spg., der i dette tilfælde sku' hedde "Point til w13", hvor du linker til dette spg. og gi'r mig point.

Men lad det ligge. Det er dit første spg., og nu ved du det. Så behold du dem bare selv. Jeg har point nok. =)
Avatar billede nielle Nybegynder
29. november 2007 - 07:38 #10
Jeg går ikke ud fra den skal wrappe inden den poster det i databasen?>

Det kan den sagtens. :^)
Avatar billede gubien Nybegynder
29. november 2007 - 09:55 #11
Nå...det virker stadig ikke og en skid :o)

<?php

if (isset($_POST['firstn']) && isset($_POST['lastn']) && isset($_POST['kommentar1']))
{
$firstn = trim($_POST['firstn']);
$lastn = trim($_POST['lastn']);
$kommentar = trim($_POST['kommentar1']);

$kommentar = wordwrap($kommentar1, 22, "<br />\n");

$firstn = str_replace("<","", $firstn);
$firstn = str_replace("&nbsp;","", $firstn);
$lastn = str_replace("<","", $lastn);
$lastn = str_replace("&nbsp;","", $lastn);
$kommentar = str_replace("<","", $kommentar1);
$kommentar = str_replace("&nbsp;","", $kommentar1);

  if (empty($firstn))
  {
  $firstn = FALSE;
  echo 'Indtast navn';
  }
  elseif (empty($lastn))
  { 
  $lastn = FALSE;
  echo 'Indtast efternavn';
  }
  elseif (empty($kommentar1))
  { 
  $kommentar = FALSE;
  echo 'Indtast kommentar';
  }   
    else 
    {   
    mysql_connect("server","login","password") or die(mysql_error());
    mysql_select_db("database") or die(mysql_error());

    mysql_query("INSERT INTO svarskema(svarID, firstn, lastn, kommentar) values(0, '$firstn','$lastn','$kommentar')");   
   
    }
}
?>

Kommentar feltet i formen hedder 'kommentar1'...og det str_replace er bare et desperat forsøg på at forhindre html tags.... hvilket jeg skal rode med senere...

Er der en åbenlys fejl? Måske er koden lidt rodet...men som sagt er jeg ny,og det er ca. 14 dage siden jeg startede...
Avatar billede roenving Novice
29. november 2007 - 16:10 #12
Hvor kommer 1-tallet i din kommentar-variabel fra ?-)

...
$kommentar = trim($_POST['kommentar1']);

$kommentar = wordwrap($kommentar, 22, "<br />\n");

$firstn = str_replace("<","", $firstn);
$firstn = str_replace("&nbsp;","", $firstn);
$lastn = str_replace("<","", $lastn);
$lastn = str_replace("&nbsp;","", $lastn);
$kommentar = str_replace("<","", $kommentar);
$kommentar = str_replace("&nbsp;","", $kommentar);

  if (empty($firstn))
  {
  $firstn = FALSE;
  echo 'Indtast navn';
  }
  elseif (empty($lastn))
  { 
  $lastn = FALSE;
  echo 'Indtast efternavn';
  }
  elseif (empty($kommentar))
  {
...
Avatar billede gubien Nybegynder
29. november 2007 - 18:54 #13
roenvig, nielle og w13, skal jeg ikke lige oprette 3 stks "point til".. Eller er anses det for spam??

Tak for din indsigt roenvig, jeg skal godt nok have styr på det med de variabler...hehe.. jeg synes bare jeg havde prøvet noget i den stil...men åbenlyst ikke...

nielle, tak for wordwrappen, jeg brugte dog i sidste ende den hvor den cutter ved at specielt antal linier... for at ungå tåber som laver aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....hehe...

Og igen tak til w13.
Avatar billede w13 Novice
29. november 2007 - 19:26 #14
Ingen point til mig i hvert fald. =) Jeg har nok af dem, så det er helt i orden. Jeg er herinde for at hjælpe og lære.
Avatar billede nielle Nybegynder
29. november 2007 - 20:38 #15
Nej, den slags anses ikke som spam her på E - det sker faktisk rimeligt tit.

Jeg tror dog at jeg står over på point på denne her, men ellers tak for tilbudet. :^)
Avatar billede roenving Novice
30. november 2007 - 11:54 #16
Ditto ,-)
Avatar billede roenving Novice
30. november 2007 - 12:12 #17
-- og i øvrigt ville du sagtens kunne nøjes med et pointoverførselsspørgsmål, men det er jo så ikke aktuelt nu !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester