19. september 2011 - 22:49Der er
26 kommentarer og 1 løsning
Tabellers placering i PHP/HTML
Dette spørgsmål er en fortsættelse fra tidligere. Jeg har en kode der skal placere nogle felter lavet som tabeller ved siden af hinanden. Koden virker når den afvikles således:
Den skal dog afvikles dynamisk, hvor antallet af elementer i et array bestemmer om der er f.eks. tre eller fem felter. Min kode ser således ud, men den sætter felterne oven på hinanden, hvilket er mit store problem:
// opgavedata i array hentes via PHP $opgave = array("Y2","G2","B2","svar","C2","k2","5"); //eksempel $antalElementer = count($opgave); $antalFelter = $antalElementer - 2; $tid = $antalFelter + 1; $rigtigtSvar = $opgave[0]; for ($i=1; $i<$antalFelter + 1; $i++) { if ($opgave[$i] !== "svar") { opgavefelt($i); // * Her skal felterne placere sig VED SIDEN af hinanden og ikke undedr hinanden * } else { svarfelt(); // * Her skal felterne placere sig VED SIDEN af hinanden og ikke undedr hinanden * } }
<H1><center>Tegn med farver i feltet</center></h1> <?php
// opgavedata i array hentes via PHP $opgave = array("Y2","G2","B2","svar","C2","k2","5"); //eksempel $antalElementer = count($opgave); $antalFelter = $antalElementer - 2; $tid = $antalFelter + 1; $rigtigtSvar = $opgave[0]; for ($i=1; $i<$antalFelter + 1; $i++) { if ($opgave[$i] !== "svar") { opgavefelt($i); // * Her skal felterne placere sig VED SIDEN af hinanden og ikke undedr hinanden * } else { svarfelt(); // * Her skal felterne placere sig VED SIDEN af hinanden og ikke undedr hinanden * } }
Hej Tolamaps Men det er jo netop ikke det jeg vil, jeg vil have det på én linje!!! Altså nogle felter ved siden af hinanden: [][][][][]
Synes godt om
Slettet bruger
20. september 2011 - 00:19#4
I din kode mangler du at afslutte din <tr> et par steder, og i andre tabeller bruger du slet ikke <tr>. Jeg ved ikke om det er det der er problemet. Du mangler f.eks. at afslutte din <tr> her:
Nu har jeg lavet en mindre udgave, der dog illustrerer problemet. Der laves 2 2x2 felter, og de skal stå ved siden af hinanden. De står dog ved dette script oven på hinanden. Det er vigtigt at jeg senere vil kunne arbejde med felterne dynamisk således at antallet af felter vil kunne varieres, hvorfor jeg helst vil have det til at fungere i PHP.
// Plotte felter ved siden af hinanden for ($i=1; $i<3; $i++) { opgavefelt($i); // * Her skal felterne placere sig VED SIDEN af hinanden og ikke under hinanden * } ?>
Hvis det kan komme til at virke med dette eksempel burde det også virke i det egentlige script. /Ditlev
det er som jeg skrev til dig i et tidligere spørgsmål, fordi du laver flere tabeller og disse er som udgangspunkt blok-elementer og vil derfor positionere sig under hinanden.
du kan placere dem i en anden tabel, eller i divs som du placerer ved siden af hinanden med float-property'en
Hej splazz Ja - jeg er fra dit tidligere svar på tidligere spørgsmål klar over problematikken med blok-elementerne.
Ad. placering i tabeller: det var det jeg forsøgte ved mit forrige spørgsmål - http://www.eksperten.dk/spm/947532#reply_7840579 men dette fejlede. Det er formodentligt noget i denne retning der vil løse problemet, men jeg har åbenbart ikke mental kapacitet til at få scriptet helt på plads, synes i hvert fald at jeg har forsøgt mig med de fleste muligheder.
Ad. divs mm. Vil man kunne bruge dette dynamisk som jeg ønsker?
der er også noget rod med en backslash der muligvis skulle escape et "
prøv selv at tage et kig i kilden og smid den over i en editor, så du kan stille den genererede kode op, så det er til at se hvad der sker og ikke sker... det er den nemmeste måde at finde ud af hvad der er galt i sådan et script på
er du sikker på at det er den kodestump du skriver dér at du kører på den side du linker til?
for når man ser i kildekoden starter den stadig med 2 <table>-tags lige efter hinanden, og det giver ingen mening med den stump kode du viser her...
har du prøvet selv at kigge i kilden på den genererede side?
Synes godt om
Slettet bruger
20. september 2011 - 21:15#20
Det kunne godt ligne den rigtige kode. Funktionen returnerer nemlig ikke noget men echoer en tabel ud, så kodelinien med: echo "<td>" . opgavefelt($i) . "</td>"; skriver bare <td></td> ud efter tabellen fra funktionen.
Synes godt om
Slettet bruger
20. september 2011 - 21:17#21
Prøv med disse 3 linier som erstatning: echo "<td>"; opgavefelt($i); echo "</td>";
Og for at være pernittengryn, ville jeg tilføje en <tr> før loopet og en </tr> efter loopet. :)
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.