Avatar billede naquer Nybegynder
04. april 2006 - 15:30 Der er 14 kommentarer og
1 løsning

Problemer med nl2br

Hey

Har lavet er forum, hvor brugere kan skrive posts.
Nu er jeg igang med at lave en funktion så brugeren også kan redigere i sin post.

Mit problem er at når brugeren trykker rediger, kommer formen op som den skal, med den tekst der allerede står i feltet, men der står <br /> hvert sted hvor brugeren før havde lavet linjeskift.
Det betyder at der kommer dobbelt så mange linkeskift når brugeren trykker på upload nyhed, fra rediger siden.

Lidt kode:

Har først et link til rediger siden fra den pågældende nyhed som ser således ud:

<a href='index.php?side=redigernyhed&id=$id'>

Den går så videre til en side som ser således ud:


$_SESSION['id'] = $_GET['id'];

*connect til database og udvælg alt hvor id = id*
$nyhed = $row['nyhed'];

*opdater database med ny nyhed*

Herefter er det felt som brugeren kan skrive i, hvor den tidligere nyhed er:

<textarea name='nyhed' rows='10' cols='40'>$nyhed</textarea>

Koden der udskriver nyheden ser således ud, for at få linjeskift med:

while($row = mysql_fetch_array($result_query)) {
        $id = $row['id'];
                $nyhed = $row['nyhed'];
        $nyhed = nl2br($nyhed);
                    echo "$nyhed</div><br />";  // nyhed

Hvad kan jeg gøre for at fjerne <br /> i redigerfeltet, først og fremmest så brugeren ikke skal se på det over det hele, men også så der ikke kommer dobbelt så mange mellemrum når der trykkes på upload nyhed.
Avatar billede casualty Nybegynder
04. april 2006 - 15:35 #1
Du kan gøre således:

<textarea name='nyhed' rows='10' cols='40'>str_replace("<br>","\\n",$nyhed)</textarea>
Avatar billede casualty Nybegynder
04. april 2006 - 15:37 #2
Derved udskiftes alle "<br>" med "\n" som tekstfeltet vil opfatte som et linieskift
Avatar billede naquer Nybegynder
04. april 2006 - 15:58 #3
Har et problem med at
<textarea name='nyhed' rows='10' cols='40'>$nyhed</textarea>

står i et echo tag, hvorved str_replace jo ik virker. Er der en smart hvorpå jeg kan springe ud af echo på for at tilføje scriptet?
Avatar billede leif Seniormester
04. april 2006 - 16:20 #4
Undlad at bruge nl2br($nyhed) når du skal smide variablen ind i et Textarea.
Avatar billede leif Seniormester
04. april 2006 - 16:20 #5
Kun at bruge nl2br() når folk skal se nyheden på siden.
Avatar billede naquer Nybegynder
04. april 2006 - 17:20 #6
Ser ud til at
<textarea name='nyhed' rows='10' cols='40'>str_replace("<br>","\\n",$nyhed)</textarea>
Kun erstatter <br /> med et /n hvilket slet ikke hjælper, eftersom /n bliver ved med at stå når brugeren redigerer teksten.
Avatar billede webstuff Nybegynder
04. april 2006 - 23:25 #7
echo "<textarea name='nyhed' rows='10' cols='40'>".str_replace("<br />", "", $nyhed)."</textarea>";

Virker det?
Avatar billede leif Seniormester
05. april 2006 - 07:11 #8
Hvorfor smider du den igennem nl2br() når du skal have det ind i dit textarea ? Hvis du undlader står det korrekt.
Avatar billede naquer Nybegynder
05. april 2006 - 18:19 #9
Kan stadig ikke få det til at virke.
Har prøvet - som du siger leif - kun at smide den igennem nl2br når den skal udskrives. Får alligevel <br /> med på redigeringssiden.
Avatar billede leif Seniormester
05. april 2006 - 22:05 #10
Har du når du smider dataene ind i databasen nl2br() på lige før ? Hvordan står det i Databasen ? Er feltet Text eller Varchar ?
Avatar billede naquer Nybegynder
06. april 2006 - 13:12 #11
har fået det til at virke nu.
brugte som webstuff sagde: echo "<textarea name='nyhed' rows='10' cols='40'>".str_replace("<br />", "", $nyhed)."</textarea>";


Feltet er text i databasen
Avatar billede casualty Nybegynder
06. april 2006 - 13:59 #12
Tak for points
Avatar billede webstuff Nybegynder
06. april 2006 - 19:23 #13
Hvis du brugte min løsning - skal jeg så ikke have point? ;o)
Avatar billede naquer Nybegynder
06. april 2006 - 20:08 #14
Jo burde nok have delt pointene ud mellem jer.
Brugte til dels jo også casuality's løsning.
Avatar billede casualty Nybegynder
07. april 2006 - 11:53 #15
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