Avatar billede nwn Nybegynder
11. februar 2008 - 23:42 Der er 40 kommentarer og
1 løsning

Tabel udvides ved indsættelse af meget tekst

Godt nok er det meget sent, men det er vinterferie, så håber der stadig er nogle på (:

Ja, overskriften siger lige lidt. Jeg har aldrig før haft problemet, men af en eller anden grund, så bliver tabellen større i bredden, hvis man indtaster meget tekst.

Teksten bliver udskrevet med nl2br, så jeg kan simpelt hen ikke forstå det.

Hvis man på "indtastnings siden" selv trykker Enter i textarea'et, så kommer der linieskift, men hvis man bare taster derud af, så selvom den automatisk er hoppet ned på næste linie, så kommer der ikke noget linie skift?

Jeg forstår det simpelthen ikke. Der er defineret width i både tabellen og td'en.

Nogle der har nogle "ideer" til hvorfor følgende sker?


Et lille udpluk af koden:

echo "<table cellpadding=\"2\" cellspacing=\"0\" style=\"width:500px\"><tr><td style=\"background-color: white; border:1px solid #000000\">";
}
echo "Skrevet af $vis2[navn] - $vis2[dato]";

if($show[user] == $vis[forfatter]) {
echo "</td><td style=\"background-color: white;\"></td>";
}
else
{
echo "";
}

echo "</tr><tr><td style=\"background-color: white; border:1px solid #000000; border-top:0px;\" width=\"500\" height=\"50\" valign=\"top\">";

$vis_svar = $vis2[svar];
echo url(nl2br($vis_svar));
echo "</td>";
Avatar billede erikjacobsen Ekspert
11. februar 2008 - 23:48 #1
Og funktionen url?
Avatar billede olebole Juniormester
11. februar 2008 - 23:50 #2
<ole>

Så lader du vel være med at 'taste derudaf' - og er der brugere, der gør det, indsætter du bare ikke indlægget i DB. Simple as that  =)

/mvh
</bole>
Avatar billede olebole Juniormester
11. februar 2008 - 23:53 #3
- og der kommer ikke noget linjeskift i den tekst, der indsættes i DB, med mindre der tastes 'Return' i textarea'et ... uagtet, at linjen 'knækker' dér.

Når du viser teksten, kommer der kun linjeskift i tabellen, hvis der er mellemrum mellem ordene. En meget lang streng vil ikke 'knække', men udvide tabellen - og den slags brugerindlæg bør bare forkstes ved en simpel validering på serveren
Avatar billede nwn Nybegynder
12. februar 2008 - 00:02 #4
erikjacobsen -> Den gør at f.eks www.kim.dk vil blive til et link.

Olebole -> Jamen f.eks her på eksperten kan man da bare taste derudaf, uden at det her bliver "længere".

Jeg ved det kan lade sig gøre på en eller anden måde ved mig :(
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 00:04 #5
Definér venligst "taster derud af" ... kan du komme med et eksempel?
Avatar billede nwn Nybegynder
12. februar 2008 - 00:06 #6
Ja

Hvis jeg f.eks taster "test" og trykker submit, så vises tabellen i den angivne størrelse (width=500)

Hvis man så f.eks istedet taster kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Så bliver tabellen meget længere, og der bliver ikke holdt width=500 længere.
Avatar billede nwn Nybegynder
12. februar 2008 - 00:08 #7
Jeg har faktisk lige opseveret, at hvis man istedet skriver en "rigtig" sætning med mellemrum osv, så går der ikke koks i det xD
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 00:10 #8
Nå, ok. Så. Du mener at du skriver en tekst uden mellemrum. Det kunne du da godt have forklaret ganske præcist i spørgsmålet. En mellemrumstast er stadig en tast hos mig.

Men altså en tabel udvider sig efter indholdet. Li'som en ballon og andre lignende genstande. På en <div> kan du sætte noget med "overflow", men så kan man jo ikke se alle de kønne bogstaver.

Hva' si'r du til Oles forslag om bare at smide sådan noget skrammel langt væk?
Avatar billede nwn Nybegynder
12. februar 2008 - 00:12 #9
Jeg ved ikke helt med Oles forslag.

Hvis man indtaster 250 k bogstaver ligeher uden mellemrum, så går det vel alligevel ned på næste linie osv? Hvordan ?
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 00:19 #10
Nu skal du ikke prøve at taste 250.000 k'er ind her på eksperten.dk - det er synd for deres database ;)  Men der kommer garanteret ingen linieskift. Men du kan se mindre end 1 promille af dem.

Man må ikke sætte et vilkårligt linieskift ind i programkode, så derfor gør eksperten.dk ikke noget ved for lange tekster uden mellemrum.

Men det er dig, der skal bestemme, hvad der sker på dit site. Det kan jeg ikke, Ole heller ikke (selv om han sikkert gerne ville), og ej heller paven, eller den kommende præsident for den Nordamerinske Sammenslutning af Stater.
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 00:20 #11
Øv, der slap k'erne op: "Nordamerikanske"
Avatar billede nwn Nybegynder
12. februar 2008 - 00:23 #12
Hmm

Jeg er ikke helt med på hvad du mener med din sidste post afsnit 2 (Man må ikke...)

-> Er det ikke muligt på nogen måde, at gøre så det kommer ned på næste linie automatisk, hvis man bare "tager derud af" ?
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 00:30 #13
Ja, og nej. Nej fordi man ikke kan vide præcist hvor meget en tekst fylder, men ja, fordi dit script kan sætte en mellemrum ind for hvert 20. tegn (f.eks.).

Nu kan man i programkode sagtens have "ikke-mellemrums-sekvenser" længere end 20 tegn. Hvis man lægger dem på eksperten, vil man ikke have et mellemrum sat ind et "tilfældigt" sted. Men det er måske hvad du vil have. Eller du kan få scrollbars på.

Der findes selvfølgelig også lange ord: "overmotorsagskyndigprøvesagkyndig". Hvis du deler efter 20 tegn står der "overmotorsagskyndigp" på den ene linie og "røvesagkyndig".
Det ser lidt sjovt ud, hvis man kun læser linie nummer 2. Og det kan være meget værre.

Så vil du lave om i dine besøgendes tekst, eller ... ?
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 00:30 #14
(spørg min en anden dag for at få et bedre eksempel... **g** )
Avatar billede nwn Nybegynder
12. februar 2008 - 00:37 #15
Okay.

Er det muligt at lave, så at filen der indsætter til databasen, automatisk indsætter et mellemrum efter "ordet" man har skrevet, hvis ordet er på over 100 tegn uden mellemrum ?
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 00:43 #16
Jeg forstår ikke - hvad skulle det gøre godt for, at sætte et mellemrum efter et ord på 100 tegn?
Avatar billede nwn Nybegynder
12. februar 2008 - 00:45 #17
Så ville den vel springe ned på næste linie automatisk ?
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 00:51 #18
Ja, efter ordet på de 100 tegn. Men står der ikke et mellemrum efter ordet i forvejen?
Avatar billede nwn Nybegynder
12. februar 2008 - 00:55 #19
Det er jo ikke sikkert, hvis en person skriver for at spamme. Så vil personen som regel bare holde en knap i bund, f.eks h knappen, og så slipper man knappen efter nogle sekunder og trykker submit.
Avatar billede nwn Nybegynder
12. februar 2008 - 01:00 #20
Klokken er 01:00 :P

Jeg bliver nød til at smutte. Bare skriv, jeg tjekker videre imorgen mellem 8-10 tiden.
Avatar billede olebole Juniormester
12. februar 2008 - 02:08 #21
Hvorfor insisterer du dog på at tillade dine brugere at spamme dine sider?

- og hvad er det, du finder så meningsfyldt ved 2000 på hinanden følgende k'er - adskilt i blokke på 100 - at du mener, WWW ikke kan være dem foruden?  =)
Avatar billede olebole Juniormester
12. februar 2008 - 02:09 #22
- nååhhh, undskyld! Det var ikke k'er, men h'er ... ja, det forklarer jo en del  :D
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 08:11 #23
Jeg kan fortsat ikke se hvad det generelt skulle gavne, at sætte et mellemrum efter et ord. Men det kan give en hvis mening at sætte et mellem inde i et langt ord for hver 20. tegn (eller et andet tal du bestemmer). Du skal bare gøre det inden Ole vågner ;)
Avatar billede erikjacobsen Ekspert
12. februar 2008 - 08:12 #24
(hvor kom det "h" fra?)
Avatar billede nwn Nybegynder
12. februar 2008 - 11:00 #25
Kan det laves så der sættes et mellemrum for hver 50. tegn så, istedet for 20 :P ?
Avatar billede michael_stim Ekspert
12. februar 2008 - 11:08 #26
nwm, der er blevet sagt 5-6 gange at det er en dårlig idé (måske flere). Er der nogen der skriver sådan i din gæstebog, så er det for at ødelægge for dig. Derfor, lad være med at poste indlægget ;o)
Men hvis du absolut insistere på at lade folk ødelægge for dig, kan du kigge på:
http://dk.php.net/wordwrap
Avatar billede nwn Nybegynder
12. februar 2008 - 14:04 #27
Javel, så spørger jeg om noget andet.

Hvis en person skriver et sætning der indeholder et "ord" på ca. 50 tegn UDEN mellemrum, så bliver indlægget ikke postes.

Hvordan laves det? Hvilken PHP funktion skal benyttes?
Avatar billede michael_stim Ekspert
12. februar 2008 - 14:22 #28
Taget fra php.net, ikke testet.

<?php
function wordlength($txt, $limit)
{
  $words = explode(' ', $txt);

  foreach($words as $v)
  {
      if(strlen($v) > $limit)
      {
            return false;
      }
  }

  return true;
}
?>

Bruges på denne måde:
<?php

$txt = "Onelongword and some small ones";

if(!wordlength($txt, 10))
{
    die("Et af dine ord er for langt.");
}

?>
Avatar billede nwn Nybegynder
12. februar 2008 - 20:45 #29
Så går jeg udfra at $txt er det personen har indtastet (: ?
Avatar billede olebole Juniormester
12. februar 2008 - 23:25 #30
- eller:

<?php
function wordlength($txt, $limit) {
    if( preg_match("/[^ ]{".$limit.",}/", $txt) ) return false;
    return true;
}

if (!wordlength($txt, 10)) {
    die("Et af dine ord er for langt.");
}
?>
Avatar billede nwn Nybegynder
13. februar 2008 - 22:11 #31
Jeg kan vel bare

if( preg_match("/[^ ]{"30",}/", $_POST['indtastet-fra-forrige-side']) ) {
echo "Her bruger vi mellemrum ;)";
}

Prøver lige :P
Avatar billede nwn Nybegynder
13. februar 2008 - 22:17 #32
Får fejlen:

Parse error: syntax error, unexpected T_LNUMBER in /var/www/hjemmeside-navn.dk/public_html/side.php on line 67
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 22:29 #33
if( preg_match("/[^ ]{30,}/", $_POST['indtastet-fra-forrige-side']) ) {
echo "Her bruger vi mellemrum ;)";
}
Avatar billede erikjacobsen Ekspert
13. februar 2008 - 22:30 #34
Ogjadetkanværeenrigtiggodidéatbrugemellemrumforsåbliverdetaltsålettereatlæse ;)
Avatar billede olebole Juniormester
13. februar 2008 - 22:47 #35
Jamen, det er slet ikke det, der er tale om, Erik. Læs (12/02-2008 00:55:52), som også besvarer dit tidiligere spørgsmål (12/02-2008 08:12:14) om, hvor h'et kom fra  ;o)

Jeg er derfor stadig voldsomt interesseret i at få nwn's svar på mit spørgsmål fra før:
"- og hvad er det, du finder så meningsfyldt ved 2000 på hinanden følgende k'er - adskilt i blokke på 100 - at du mener, WWW ikke kan være dem foruden?"  =)
Avatar billede nwn Nybegynder
14. februar 2008 - 12:28 #36
Erik -> 13/02-2008 22:11:05

Dette var blot en "test", jeg har sat den til IKKE at indsætte til databasen, men hvad betyder T_LNUMBER ?

Olebole -> Jeg troede da at mellemrum ville sørge for det kom ned på næste linie, men forget it, det skal ikke indsættes så.
Avatar billede nwn Nybegynder
14. februar 2008 - 12:32 #37
Så virker det sgu med erik's 13/02-2008 22:29:41 ((:
Avatar billede nwn Nybegynder
16. februar 2008 - 00:15 #38
Vil du smide et svar erik :P ?
Avatar billede erikjacobsen Ekspert
16. februar 2008 - 08:36 #39
Nej tak, jeg samler slet ikke på point.
Avatar billede nwn Nybegynder
16. februar 2008 - 11:23 #40
OK, og tak for hjælpen (:
Avatar billede nwn Nybegynder
16. februar 2008 - 11:23 #41
.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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