/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
php og html form
Fra : chr


Dato : 01-05-05 13:27

Jeg har et problem, når jeg skriver en tekst ind i en html form,
og når der så kommer et automatisk linjeskift ,og jeg gemmer
teksten i mysql og så vil prøve at vise den igen i php, så er der
intet
linjeskift. Den vil godt vise når jeg selv laver et linjeskift
ved at trykke på enter.
Hvordan får jeg den til også at vise automatiskelinjeskift?

-----html:
<form action="nyhed.php" method="post">
Overskrift: <INPUT TYPE="text" NAME="overskrift" SIZE="30">
<p>
<textarea cols="30" rows="10" name="text"></textarea>
</p>
<p><input type="submit" value="Send ind" /></p>
</form>


-----php, som indsætter den i mysql:
mysql_query("INSERT INTO nyheder
(forfatter, dato, text, overskrift) VALUES('$val', '$dato',
'$tt',
'$over') ")
or die(mysql_error());
echo "Nyheden er sendt";

-----php, som viser den insatte data:
$result = mysql_query("SELECT * FROM nyheder
WHERE id='$ov'") or die(mysql_error());

$row = mysql_fetch_array( $result );
echo nl2br($row['text']);


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Bent Stigsen (01-05-2005)
Kommentar
Fra : Bent Stigsen


Dato : 01-05-05 15:32

chr wrote:
> Jeg har et problem, når jeg skriver en tekst ind i en html form,
> og når der så kommer et automatisk linjeskift ,og jeg gemmer
> teksten i mysql og så vil prøve at vise den igen i php, så er der
> intet
> linjeskift. Den vil godt vise når jeg selv laver et linjeskift
> ved at trykke på enter.
> Hvordan får jeg den til også at vise automatiskelinjeskift?

Hvis du bruger en monospace font (både i indtastning og visning), kan du
nok komme rigtigt tæt på med wordwrap funktionen.

http://dk.php.net/manual/en/function.wordwrap.php


Med proportional fonte er det mere bøvlet. Lige umiddelbart skulle jeg
mene du at du skal undgå at vælge en utraditionel font. Dernæst enten
bruge samme style på indtastningsfelt og visningsfelt, eller også tælle
sammen bredden bogastav for bogstav og så ramme ombrydningen som
indtastningsformen laver.

Evt. have mulighed for preview i forbindelse med indtastningen, så
brugeren selv kan tilpasse.


/Bent

Troels Hansen (01-05-2005)
Kommentar
Fra : Troels Hansen


Dato : 01-05-05 16:26

chr wrote:

> -----php, som indsætter den i mysql:
> mysql_query("INSERT INTO nyheder
> (forfatter, dato, text, overskrift) VALUES('$val', '$dato',
> '$tt',
> '$over') ")
> or die(mysql_error());
> echo "Nyheden er sendt";

Indsæt følgende inden du laver din insert:
$text = ereg_replace(13,"<br />",$text);
Dette erstatter carriage return (ny linie) med et <br>.

chr (01-05-2005)
Kommentar
Fra : chr


Dato : 01-05-05 21:57

$newtext = wordwrap($text, 8, "\n", 1);
Det virker fint med hvilken som helst anden tekst
f.eks. hvis jeg sætter $tekst = "dette er en prøve";,
men når jeg bruger $tekst = $_POST['text'];
virker det ikke. Hvorfor?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Ruben Hesselbæk (02-05-2005)
Kommentar
Fra : Ruben Hesselbæk


Dato : 02-05-05 07:20

chr wrote:
> $newtext = wordwrap($text, 8, "\n", 1);
> Det virker fint med hvilken som helst anden tekst
> f.eks. hvis jeg sætter $tekst = "dette er en prøve";,
> men når jeg bruger $tekst = $_POST['text'];
> virker det ikke. Hvorfor?
>
Du kan prøve at lave en var_dump($_POST) for at se hvilke variabler du
får med.

Ang. newlines så finder der 2 metoder nl2br (Laver newlines om til <br>)
og br2nl (som laver <br> om til newlines).
Den første plejer jeg at bruge før tingene gemmes i databasen, og den
anden bruges når nyheden skal redigeres, da folk bliver ret sure hvis
der står <br> i det textarea hvor de skal editere.

Venlig hilsen
Ruben Hesselbæk

Martin (02-05-2005)
Kommentar
Fra : Martin


Dato : 02-05-05 07:27

Ruben Hesselbæk wrote:
> Ang. newlines så finder der 2 metoder nl2br (Laver newlines om til <br>)
> og br2nl (som laver <br> om til newlines).

br2nl er IKKE en php funktion - men den er en "hjemmebrygget" funktion
som står i usercomment til nl2br - jeg ville bare lige sige det - så man
ikk leder forgæves :)

chr (02-05-2005)
Kommentar
Fra : chr


Dato : 02-05-05 13:07

Det virker stadig ikke. Nogen ideer hvorfor?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

chr (02-05-2005)
Kommentar
Fra : chr


Dato : 02-05-05 13:05

Jeg kan stadig ikke få den til at virke nogle bud hvorfor?

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin (03-05-2005)
Kommentar
Fra : Martin


Dato : 03-05-05 15:26

chr wrote:
> mysql_query("INSERT INTO nyheder
> (forfatter, dato, text, overskrift) VALUES('$val', '$dato',
> '$tt',
> '$over') ")
> or die(mysql_error());
> echo "Nyheden er sendt";


Prøv at lave en var_dump() på dine variabler ($val, $dato osv.)

Min første idé er at $val skal være $_POST["val"] og det samme med det
andre.

>
> -----php, som viser den insatte data:
> $result = mysql_query("SELECT * FROM nyheder
> WHERE id='$ov'") or die(mysql_error());
>
> $row = mysql_fetch_array( $result );
> echo nl2br($row['text']);

Mon ikk det er det samme her $id skal være $_GET["id"]
men lav en var_dump() på alle de variabler du ikk mener er rigtigt - og
se om outputtet er det som det skal være.

chr (03-05-2005)
Kommentar
Fra : chr


Dato : 03-05-05 18:06

Martin wrote in dk.edb.internet.webdesign.serverside.php:
> Mon ikk det er det samme her $id skal være $_GET["id"]
> men lav en var_dump() på alle de variabler du ikk mener er rigtigt - og
> se om outputtet er det som det skal være.


Det hele er rigtig og den sætter den også rigtig ind i databasen, men den
viser ikke i min php-fil et linjeskrift, når jeg skriver i min form og
den automatisk skifter linje når der ikke kan være mere på linje. Det
laver linjeskift når jeg trykker "ENTER", men ikke når der automatisk
kommer et linjeskift i html formen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Peter Brodersen (03-05-2005)
Kommentar
Fra : Peter Brodersen


Dato : 03-05-05 19:46

On 03 May 2005 17:06:28 GMT, chr <fsd@sfe.fd> wrote:

>Det hele er rigtig og den sætter den også rigtig ind i databasen, men den
>viser ikke i min php-fil et linjeskrift, når jeg skriver i min form og
>den automatisk skifter linje når der ikke kan være mere på linje. Det
>laver linjeskift når jeg trykker "ENTER", men ikke når der automatisk
>kommer et linjeskift i html formen

Ah, på den måde. Du kan ikke få den til at sende linjeskift med, når
linjerne automatisk tekstombrydes (måske udover med et par uofficielle
wrap-attributter til dit textarea), men PHP har en funktion, der
hedder wordwrap, der folder tekst efter et bestemt antal tegn (dog
ikke midt i et ord). Det kan være, det er den, du er interesseret i at
bruge undervejs:

http://php.net/wordwrap

Fx:

print nl2br(wordwrap($text));

--
- Peter Brodersen

chr (04-05-2005)
Kommentar
Fra : chr


Dato : 04-05-05 13:59

så virker det sku mange tak for hjælpen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408634
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste