Gå til innhold

Tabeller / iFrames


Anbefalte innlegg

Jeg holder på å lage en side. Her har jeg en dynamisk meny med dropdown undermenyer. For at disse undermenyene skal kunne vises, må jeg bruke iframe inni en tabell. Problemet er at når jeg lager vinduet mindre så følger ikke scrollbarene til iframen med. Problemet er vel at tabellen ikke resizer seg etter vinduet. Hvordan får jeg til det?

 

Hvis ikke dette går ann, finnes det noen annen måte å kunne lage en side på uten å måtte bruke frames/iframes??

 

Siden er bygget opp med en topp frame og en main frame.

I main er det lagt inn to tabeller horisontalt.

 

----------------------------

|++++Topp+++++|

----------------------------

|++++|++++++++|

|++++|++++++++|

|Meny |++Hoved++|

|++++|++++++++|

|++++|++++++++|

----------------------------

(beklager at jeg tegner det slik, men har ikke tilgang til web serveren dette blir lagt ut på enda)

 

Nå er hoved en iframe. mens menyen ligger da i meny.

 

Jeg vil at linkene jeg klikker på i meny skal åpne i hoved uten at jeg må legge inn menyen i alle sidene.

 

Problemet er som nevn tidligere at lager jeg alt i frames, så vil undermenyene i menyen legge seg under frameborderen. Iframe er den eneste muligheten jeg har funnet hvor den går over.

 

Men finnes det noen annen måte å kun måtte lage de nye sidene med info (de sidene som vises i hoved) uten å måtte lage designet og menyen på samtlige sider?

 

Sorry for en rotete forklaring, men håper noen forstår.

Lenke til kommentar
Videoannonse
Annonse

Har du støtte for PHP på serveren? I så fall er et include-script det du trenger. Da får du adresser som www.minside.com/index.php?side=hjem.

 

da har du bare én side (index.php) med dette include-greiene som inkluderer innholdet et spesielt sted på siden. Innholdet ligger da i andre filer.

 

Du finner et bra include-script på http://www.raweb.net som jeg har brukt på min egen hjemmeside.

Lenke til kommentar

Så vidt jeg kan se på det scriptet så må da alle sidene som skal inkluderes ligge i en mappe? Siden skal bestå av ganske mange sider, så det å ha alle i en side vil ikke gå. Kan man linke til filer som ligger i forskjellige mapper oxo?

 

Og vil linkene i menyen se slik ut:

 

<a href="index.php?side=om_meg">Info om meg</a>

 

og hvis det kan brukes filer i forskjellige mapper hvordan vil da linken se ut??

Lenke til kommentar

Akkurat det scriotet har en sikkerhetsfunksjon som sperrer for "eksterne" inkluderinger. Du har da ikke muligheten for å bruke for eksempel ?side=annenmappe/sidenavn

 

Dette kan sikkert modifiseres. Jeg har såvidt prøvd å fikse på det, men jeg tror jeg skal prøve å fikse det litt en gang.

Lenke til kommentar

hvis det hadde vært mulig så hadde det løst problemene mine tror jeg. Jeg kan ikke PHP så jeg veit ikke hva jeg skal gjøre for å få fikset det, så hvis du kunne gjort det, eller om du veit om et annet script hvor det går så hadde det vært supert.

Lenke til kommentar

Hmm... Sitter no her på skolen og stirrer ut i luften. Kan prøve å mekke et lite et selv om jeg er ganske newbie + sulten + trøtt :ermm:

 

Here goes nothing:

<?php

$maindir = "./inc";    // Rotmappen for alle inkluderingssider
$ext = ".php";          // Filendelse for inkluderingssidene
$main = "hoved";      // Siden som inkluderes hvis 'side' ikke er definert i adressen

$side = $_GET['side'];

if (!$side) {
   include("'$maindir/' . '$main' . '$ext'"); }
elseif (isset($side)) {
   include("'$maindir/' . '$side' . '$ext'"); }
elseif (!file_exists('$maindir/' . $side . $ext)) {
   echo "<h1>Server Error 404</h1><p>Siden finnes ikke</p>"; }
?>

 

Noe sånt ^_^

 

Har verken testet den eller tenkt grundig gjennom den, men du kan jo prøve...

Det skal nå fungere å skrive www.whatever.com/index.php?side=hoved. Da skal den - forhåpentligvis - inkludere hoved.php som ligger i mappen inc. Hvis du vil kan du legge flere mapper inni inc og for eksempel skrive www.whatever.com/index.php?side=mappe2/sidenmin <- Da vil den inkludere ./inc/mappe2/sidenmin.php.

 

Som sagt, det er sikkert noe som må/bør endres, men du kan teste det og se hva som skjer :)

 

PS! Lim inn alt f.o.m <?php til ?> i HTML-koden din der du vil ha innholdet.

 

 

EDIT: Fixed

Endret av Loomy
Lenke til kommentar

Jeg får prøve når jeg kommer hjem. Har aldri drevet med noe php før, så dette er ganske gresk for meg.

 

Men, mange av sidene er allerede laget i html, så kan jeg bare bytte ut

$ext = ".php";

med

$ext = ".html"; ????

 

Og en annen ting. Er det kun i index.php (index.html) som php scriptet skal være i, eller må det være et script i alle undersidene?

 

Når det gjelder det med mappene; si at mappe strukturen på siden er noe slik

 

/min_side/index.html

/om meg/index.html

/bilder/index.html

/linker/index.html

/fakta/om_skolen/index.html

/fakta/om_ansatte/index.html (php)

 

så må jeg legge index i /min_side

(bytte $maindir = "./inc"; til $maindir = "./min_side";)

 

mens de filene som skal inkluderes feks fra /fakta/om_ansatte skal da linkes slik:

 

index.php?side=fakta/om_ansatte/index (skal vel ikke skrive .html når det står i scriptet som $ext ???)

 

Har jeg forstått riktig?

 

oxo en ting til:

 

$main = "hoved"; // Siden som inkluderes hvis

 

mener du index.html (php) eller ????

 

Som du sikkert har skjønt så er jeg ikke sikker på det med om php kan vare i en html fil, eller om sider med php script i MÅ være .php.

 

Tusen takk for god hjelp :D

Endret av TommyFM
Lenke til kommentar
Men, mange av sidene er allerede laget i html, så kan jeg bare bytte ut

$ext = ".php";

med

$ext = ".html"; ????

Jepp, det kan være .brunost for den saks skyld :)

En ting du bør huske: Sidene som inkluderes skal ikke inneholde annet enn selve 'innholdet'. Dvs, tagger som <html>, <title>, <head> og <body> skal IKKE være med. KUN det som på en vanlig side ville lagt mellom <body> og </body>

 

Og en annen ting. Er det kun i index.php (index.html) som php scriptet skal være i, eller må det være et script i alle undersidene?

Ja, det skal kun være i index-filen. Det er viktig at den heter index.php. Hvis den heter index.html vil serveren neppe kjøre php-scriptet som ligger i den.

 

Ang. mappestrukturen: Hvis du lemper alle de mappene inn i inc/ vil det fungere fint - skulle jeg tro. Det du må huske på da er å sjekke at alle linker, bilder o.l. har de riktige stiene.

Lenke til kommentar
oxo en ting til:

 

$main = "hoved"; // Siden som inkluderes hvis

 

mener du index.html (php) eller ????

 

 

Nei, hoved.php/html/brunost skal da inneholde det du vanligvis ville hatt av innhold på forsiden din.

 

Btw, fant en slurvefeil i scriptet mitt.. skal fikse det ASAP

Lenke til kommentar
oxo en ting til:

 

$main = "hoved"; // Siden som inkluderes hvis

 

mener du index.html (php) eller ????

 

 

Nei, hoved.php/html/brunost skal da inneholde det du vanligvis ville hatt av innhold på forsiden din.

 

Btw, fant en slurvefeil i scriptet mitt.. skal fikse det ASAP

Altså "main" siden på en html frames side?? Den fila som skal inkluderes når man går inn på index.php?

Lenke til kommentar
Altså "main" siden på en html frames side?? Den fila som skal inkluderes når man går inn på index.php?

Jepp, det stemmer (bare husk å fjerne de taggene jeg nevnte ovenfor).

Jeg fikset kommentaren min til den linjen. Altså $main = siden som inkluderes hvis man går til www.dittdomene.com eller www.dittdomene.com/index.php. Altså når side ikke er definert

Lenke til kommentar

Får ikke dette til å fungere helt jeg.

 

Kjører en Apache server lokalt på maskinen.

 

Får feilmeld:

 

Warning: Failed opening ''./pers/' . 'hoved' . '.html'' for inclusion (include_path='.;C:/PHPdev/php/includes;C:/PHPdev/php/class') in c:\phpdev\forum\test\index.php on line 69

 

har lagt index.php i mappe "c:\phpdev\forum\test\"

og hoved.html i mappe "c:\phpdev\forum\test\pers\hoved.html"

 

scriptet i index.php er:

 

<?php

 

$maindir = "./pers"; // Rotmappen for alle inkluderingssider

$ext = ".html"; // Filendelse for inkluderingssidene

$main = "hoved"; // Siden som inkluderes hvis 'side' ikke er definert i adressen

 

$side = $_GET['side'];

 

if (!$side) {

include("'$maindir/' . '$main' . '$ext'"); }

elseif (isset($side)) {

include("'$maindir/' . '$side' . '$ext'"); }

elseif (!file_exists('$maindir/' . $side . $ext)) {

echo "<h1>Server Error 404</h1><p>Siden finnes ikke</p>"; }

?>

 

Hva er det som er feil?

 

og hvorfor skriver feilmeld noe om:

 

C:/PHPdev/php/includes;C:/PHPdev/php/class')

 

Hvor får den de mappene fra? (mappene er der, men de er jo ikke definert i scriptet.

Lenke til kommentar

<?php

$maindir = "./inc"; // Rotmappen for alle inkluderingssider
$ext = ".php"; // Filendelse for inkluderingssidene
$main = "hoved"; // Siden som inkluderes hvis 'side' ikke er definert i adressen

$side = $_GET['side'];

if (isset($side)) {
include("$maindir/$side$ext"); }
elseif (!isset($side)) {
include("$maindir/$main$ext"); }
elseif (!file_exists("$maindir/$side$ext")) {
echo "<h1>Server Error 404</h1><p>Siden finnes ikke</p>"; }
else echo "Siden kan ikke vises";
?>

 

Nå funker det som det skal.. tror jeg. Har så vidt testet det, og selve inkluderingene fungerer i hvert fall.

Lenke til kommentar

Det funker nesten. Eneste er at når linkene mine er slik:

 

<a href="index.php?side=main"> Main</a>

 

så kommer denne feilmeld:

 

Warning: Failed opening './persbraten/hurra.html.html' for inclusion (include_path='.;c:\php4\pear') in c:\phpdev\forum\persbratenside\index.php on line 30

 

Har jo ikke skrevet .html i linken, men den skriver det to ganger.

 

Alt funker fint hvis jeg skriver adressen manuelt, men ikke via link. Hva er feil?

Lenke til kommentar

Men en annen ting. Prøvde å inkludere en side med <head> og alle de tagene. Var jo ikke noe problem det da.

 

Hvorfor mente du at jeg ikke skulle ha de med??

 

oxo; kan man bruke dette scriptet i en frames side?

 

Fikk ikke det helt til å funke, men er kanskje meningen at man ikke skal det.

Derfor jeg bruker det er pga top framen kan kanskje forandre seg litt..

Endret av TommyFM
Lenke til kommentar
Men en annen ting. Prøvde å inkludere en side med <head> og alle de tagene. Var jo ikke noe problem det da.

 

Hvorfor mente du at jeg ikke skulle ha de med??

Fordi kildekoden da vil inneholde flere head-tags (som er den mest alvorlige feilen). Slikt som meta-tags, CSS-linker, o.l. Dette kan lett skape problemer for browseren. Og siden blir ikke akkurat validert, for å si det mildt.

 

oxo; kan man bruke dette scriptet i en frames side?

Fikk ikke det helt til å funke, men er kanskje meningen at man ikke skal det.

Derfor jeg bruker det er pga top framen kan kanskje forandre seg litt..

Jepp, er samma om man bruker det i frame eller ikke. Hele opplegget er at den rett og slett copy-paste'er HTML-kodene fra inkluderingsfilen og inn der skriptet er plassert.

Lenke til kommentar

Hmmm, fikk det ikke til å funke i frames jeg. hvis jeg har en topp frame med banner, og en frame med siden, når jeg da klikker på en link, så åpner den bare en ny topp frame, slik at det blir to topp frame og en side frame. klikker jeg på linken en gang til så blir det tre topp osv...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...