webForumDet fria alternativet

Behöver hjälp med radbyte?

PHPur PHP

10 svar · 347 visningar · startad av Dr-man

Medlem sedan juli 2002732 inlägg
Frågan#1

Går det i en textarea, när man trycker ner Enter-knappen, så skulle det motsvara en <br>(radbyte)?

Medlem sedan okt. 20001 285 inlägg
#2

Kör detta före du lägger i det i textarean i DB´n .. eller hämtar från DB´n, jag brukar köra det då jag hämtar från Databasen.. då blir det enklare om man ska redigera ett mess via en admindel i en textarea

$text = str_replace ("\n", "<br />", $text);

Medlem sedan aug. 20002 975 inlägg
#3

Fuel skrev:

Kör detta före du lägger i det i textarean i DB´n .. eller hämtar från DB´n, jag brukar köra det då jag hämtar från Databasen.. då blir det enklare om man ska redigera ett mess via en admindel i en textarea

$text = str_replace ("\n", "<br />", $text);

Det finns en färdig funktion för det i PHP:

$text = nl2br($text);
Medlem sedan feb. 2003169 inlägg
#4

Om du använder dig av detta i t ex en gästbok, och vill också ta bort html-kod från meddelandet, så måste du göra det EFTER att du tagit bort html-koden, så här:

$str = htmlspecialchars($str);
$str = nl2br($str);
Medlem sedan okt. 20001 285 inlägg
#5

bra ni är vakna Riklund & Matte.. för det är inte jag.. :x

Medlem sedan feb. 2003169 inlägg
#6

Gör inget! :)

Medlem sedan juli 2002732 inlägg
#7

Det fungerar fint!

Men ett litet problem är att när jag sedan ändrar texten i textarean så
skapas det i textarean extra radbyten? Vad kan detta bero på?

Vet ej om koden ger nån nytta?


<html> 
<body> 

<?php 
if (isset($submit)){ 

  $link = mysql_connect ("localhost","root"); 
  mysql_select_db("bostad", $link); 

  if ($texten ==''){ 
     $texten='-'; 
  } 

  $texten = nl2br($texten); 
  $query = "update ansokan set texten='$texten' where id='$c'"; 
  mysql_query($query, $link); 
  echo "Posten ändrad i Övriga tjänster"; 
} 

$link = mysql_connect ("localhost", "root"); 
mysql_select_db("bostad", $link); 

$sweutil = "select * from ansokan where id='$c'"; 
$sweutil2 = mysql_query($sweutil, $link); 
$sweutil3 = mysql_fetch_array($sweutil2); 
$texten = nl2br($texten); 

?> 
<center> 
<h2>Ändra i tjänsten</h2><br><br> 
<table border='0' cellpadding="5"> 
<tr> 
<form method="post" action="<?php echo $PHP_SELF?>"> 
<input type="hidden" value="<?php echo $sweutil3["id"]?>" name="c"> 
<td> 
Texten:<br><textarea name="texten" cols="70" rows="10"><?php echo $sweutil3["texten"]?> 
</textarea> 
</td> 
</tr> 
<tr> 
<td> 
<Input type="submit" name="submit" value="Ändra"> 
</form> 
<form action='tjansteradm2.php3' method='get'> 
<br /> 
<Input type='submit' value='Huvudsidan'> 
</td> 
</tr> 
</table> 
</form> 

</center> 
</body> 
</html>
Medlem sedan aug. 20002 975 inlägg
#8
Texten:<br><textarea name="texten" cols="70" rows="10"><?php echo str_replace("<br>", "", $sweutil3["texten"]) ?> 
</textarea>
Medlem sedan juli 2002732 inlägg
#9

Det hjälpte inte mig något med kodsnutten i det förra inlägget!
Kan nån hjälpa mig att lösa detta?

Medlem sedan aug. 20002 975 inlägg
#10

Lite korttänkt av mig. Testa det här istället:
[KOD]Texten:<br><textarea name="texten" cols="70" rows="10"><?php echo str_replace("<br />", "", $sweutil3["texten"]) ?>
</textarea>

Medlem sedan maj 20021 466 inlägg
#11

Varför ska du ta bort <br />? Det är bättre att aldrig lägga till det.

Använd nl2br och htmlspecialchars när du ska presentera text utanför textarea och använd bara htmlspecialchars när du ska presentera text innanför.

I databasen ska du lagra den oformaterade texten.

135 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)