[PHP/HTML] Uitlijning cellen tabel

Pagina: 1
Acties:
  • 168 views sinds 30-01-2008
  • Reageer

  • MickMack
  • Registratie: December 2001
  • Laatst online: 18-05 22:29
Dag allemaal,

Vanaf vanochten 8 uur probeer ik al een zeer irritant probleem op te lossen.
Ik heb database met daarin een hoop adressen en deze wil ik middels php onder elkaar in een tabel weergeven. Elke rij van de tabel moet echter in een layer komen te staan zodat ik die layer later kan uitklappen zodat er meer informatie te zien is.

De code die ik daarvoor heb gemaakt is dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while ($i < $NumberOfRows && $record = mysql_fetch_object($result)) {
  $i=$i+1;
  if ($ClassID == "Row1") {$ClassID = "Row2";} else {$ClassID = "Row1";}
 
   echo ("
       <div id='Row".$i."' style='height:25px; border: 0px none; left:0px; top:0px; position:relative;  z-index:3; width:769px; padding-left:0px; padding-right:0px;visibility: visible; overflow: hidden;'> 
        <table table width='769' cellpadding='0' cellspacing='0' align='left' valign='top'>
         <tr>
         <td width='40' class='".$ClassID."'><a href='javascript:ExpandDiv(\"Row".$i."\")'>".$record->ID."</a></td>\n
         <td width='160' class='".$ClassID."'>".Trim($record->LastName)."</td>\n
         <td width='135' class='".$ClassID."'>Woei</td>\n
         <td width='130' class='".$ClassID."'>Woei</td>\n
         <td width='120' class='".$ClassID."'>Woei</td>\n  
         <td width='184' class='".$ClassID."'>Woei</td>\n
         </tr> 
        </table>
       </div>
    ");
 }


Dit werkt opzich goed, maarrrrr, wat gebeurd er vervolgens met de layout van de tabel, dit:

Afbeeldingslocatie: http://home.planet.nl/~witte128/GoT/Bah.jpg

De uitlijning is dus totaal screwed up. het ligt niet aan de div, die komen netjes onder elkaar te staan, dat heb ik al gecheckt. Ook de cellen van de tabel krijgen allemaal netjes een breedte mee, maar waarom wordt dan toch de ene cel breder dan de andere?? In de code worden ook al de spaties aan het begin en eind van de records gehaald met trim(), maar dat helpt dus ook niks.

Als ik overigens in de tweede kolom een standaard text zoals woei zet, komt alles wel netjes onder elkaar. De uitlijning van de cellen wordt dus alleen een puinhoop wanneer ik records uit de database in de cellen probeer te zetten.

Iemand een oplossing?

The JavaScript GoT Tracker


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 23:35

crisp

Devver

Pixelated

probeer eens table-layout:fixed op de tabel te zetten :)

Intentionally left blank


Verwijderd

Waarom die DIV eromheen? Je kunt ook gewoon TRs showen/hiden met CSS.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 23:35

crisp

Devver

Pixelated

Verwijderd schreef op maandag 06 december 2004 @ 11:45:
Waarom die DIV eromheen? Je kunt ook gewoon TRs showen/hiden met CSS.
Dat was mijn 2e gedachte; desnoods logisch scheiden mbv thead/tbody elementen

Intentionally left blank


  • MickMack
  • Registratie: December 2001
  • Laatst online: 18-05 22:29
En zoals ook nu weer blijkt geeft Crisp met een hand om draai een mooie layout oplossing..
Thnx :)

Ik heb echt heel veel style opties al geprobeerd maar deze nog niet.
En het veranderen van de hoogte van de TR's met CSS is me ook al wel gelukt. Alleen ik wil tijdens het laden van de pagina alle extra content al vast laden in de cellen. En dan resized de TR zodat direct alle info zichtbaar is. Nu heb ik divje met overflow: hidden, eigenlijk overlappen de divjes elkaar dus.

offtopic:
He Crisp jij ook de GoT tracker in je signature :)

[ Voor 8% gewijzigd door MickMack op 06-12-2004 11:53 ]

The JavaScript GoT Tracker


Verwijderd

Die newlines kun je in ieder geval eruit gooien. Verder kan MSIE de layout ook nog wel een verneuken als de HTML-code niet achter elkaar/op dezelfde regel getypt is. Probeer dus even wat te vogelen met de uitgespuigde HTML.

Verder nog wat tips m.b.t. tot je PHP-code:

Die '$i' heb je niet nodig, aangezien de lus al ophoudt als er geen rijen meer over zijn. Verder is het sneller om '$i += 1' of nog beter '$i++' te schrijven.

Verder raad ik je af om een if-statement op een regel te schrijven i.v.m. de overzichtelijkheid van je code.

Als laatste raad ik je aan om variabelen in echoconstructors in te voegen doormiddel van concatoperators (.) i.p.v. van ze direct in de echoconstructors te plaatsen. Beter nog is het om je code van de opmaak te scheiden.

Succes!

[ Voor 21% gewijzigd door Verwijderd op 06-12-2004 12:10 ]


  • MickMack
  • Registratie: December 2001
  • Laatst online: 18-05 22:29
Tnx TK84 voor de tips, zal ik zeker even toepassen. :)

Ohja, die $i staat erbij omdat ik maar 25 resultaten per pagina (afhankelijk van de schermresolutie van de gebruiker) wil laten zien.

[ Voor 57% gewijzigd door MickMack op 06-12-2004 12:03 ]

The JavaScript GoT Tracker


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

MickMack schreef op maandag 06 december 2004 @ 12:01:
Tnx TK84 voor de tips, zal ik zeker even toepassen. :)

Ohja, die $i staat erbij omdat ik maar 25 resultaten per pagina (afhankelijk van de schermresolutie van de gebruiker) wil laten zien.
Dan zou je ook met LIMIT in je SQL kunnen werken, zodat er altijd maar een x aantal records opgehaald worden. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.

Pagina: 1