|
| 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
| |
|
|