Hallo lezer,

Ik bezit een website met aan de linkerkant een menu, en in het midden een window waar de pagina's getoond worden als je op een menu item klikt.
In Menu.php staat ook <base target="iframeinhoud">, ik neem aan dat dit het frame is wat getoond wordt.
Als ik nu bijvoorbeeld op menu-item "laatste nieuws" klik dan zie ik dat nieuws.php in het frame getoond wordt en het adres in de browser wijzigd niet.
Als ik met de muis boven het menuitem sta dan zie ik dat de url is http:\\www.xyz.nl\nieuws.php
Al ik gewoon in een browser het adres http:\\www.xyz.nl\nieuws.php zet, dan wordt alleen de nieuwspagina in het scherm getoond. Ik zou graag in de browser een url neer kunnen zetten zodat het lijkt alsof je van de hoofdpagina komt en de inhoud in het frame laat zien. Is dit mogelijk?

Dus doel is om zelfde plaats te komen in de URL als dat je naar de site gaat en op het menuitem klikt

Reden is een nieuwsbrief met een verwijzing naar een bepaalde pagina, en ik wil dan het liefst gewoon naar de site gaan en die pagina in een frame tonen
Hier zijn meerdere mogelijkheden voor.

* Bouw je website om naar divs en haal dus de frames eruit. Frames zijn funnest voor je resultaat in zoekmachines.
* Bouw een framecheck in de pagina, als er geen frame omheen zit moet je die plaatsen (google eens op frame check, daar zit wel wat tussen. Test het zowel in IE als in een andere browser (firefox,safari etc.))
* Maak een apparte url aan die onderwater je frameset laad met je pagina in de inhoud

1e heeft mijn voorkeur maar kost veel tijd. keuze 3 zie ik ook niet een echt probleem in. keuze 4 vindt ik zeer irritant.
Hij wil een directe link naar een pagina maar wel zijn standaard frameset eromheen.
Maar is het belangrijk dat je niet alles snapt? Er komt een antwoord op de vraag van de topic starter en daarna iemand die niet snapt wat de topicstarter wil.

Of ga je als er echt ingewikkelde vragen in een topic gesteld worden ook om uitleg vragen?
@TJVB Als je met optie 3 "* Maak een apparte url aan die onderwater je frameset laad met je pagina in de inhoud" bedoeld dan is dat wat ik wil. Maar mijn grote vraag is HOE.

En wat bedoel je met optie 4? Ik zie er 3

Bedankt
Was waarscijnlijk een typefout.. hij bedoelde optie 3 denk ik.. die is namelijk irritant..

Maar zoals tjvb zegt, kun je beter met divs gaan werken. Je kunt er ook "templates" van maken wat bijna hetzelfde is als iframes, alleen include je die in de pagina.. je pagina`s worden dan een stuk overzichtelijker EN heb je de mogelijkheid om alles te doen zoals je wil.

EN grootste punt is dan: je bent weer zoekmachine vriendelijk bezig, wat je website alleen maar ten goede komt. Als je hier uitleg over wil, moet je het vragen
Soort van duidelijk verhaal.
Ik heb alleen de URL nu voor 1 instantie nodig dus vroeg me af of het mogelijk was. Ben wel bekend met programmeren maar niet zo met php.
Weet ook niet waarom de frames zoekengine-onvriendelijk zijn.
Zal de designer vragen hoeveel werk het is om over te stappen of DIVS.

Als iemand tot dan de tussenoplossing heeft zou dat fijn zijn
Dat moest optie 2 zijn.

Voor optie 3 moet je in je framepagina een check hebben

Voorbeeld:
Hier heb ik 2 frames waarvan 1 standaard home.php krijgt en een bottom
index.php

<?php
$inhoud='home.php';
if(isset($_GET['inhoud']))
{
  switch( $_GET['inhoud'])
  {
    case 'aanbieding' : $inhoud = 'aanbieding.php';  break;
    case 'phphulpkorting' : $inhoud = 'phphulp.php';  break;
    case 'route' : $inhoud = 'route.php';  break;
    default:  break; //default voor als er niks is, maar vandaag doen we niet zo veel
  }
}

<frameset rows="*,80" frameborder="no" border="0" framespacing="0" cols="*">
  <frame name="main" scrolling="auto" src="<?php  echo $inhoud; ?>">
  <frame name="bottom" scrolling="no" noresize src="/bottom.php">
</frameset>


Nu gaat index.php?inhoud=aanbieding naar aanbieding.php in je frames
Elke regel in de switch is voor een pagina.
Als er geen ?inhoud=.... achter staat of een niet bestaande is laad die de gewone pagina.
Eventueel kun je met mod_rewrite zorgen dat je mooie urls krijgt.


Edit:
Merijn schreef op 24.01.2009 00:40
Was waarscijnlijk een typefout.. hij bedoelde optie 3 denk ik.. die is namelijk irritant..

Ik vind 2 veel irritanter, dan laad eerste de pagina, ziet javascript dat de frame er niet is en wordt alles overnieuw geladen :s
Optie 3 kan redelijk netjes gedaan worden.

Sydo schreef op 24.01.2009 00:44
Soort van duidelijk verhaal.
Ik heb alleen de URL nu voor 1 instantie nodig dus vroeg me af of het mogelijk was. Ben wel bekend met programmeren maar niet zo met php.
Weet ook niet waarom de frames zoekengine-onvriendelijk zijn.
Zal de designer vragen hoeveel werk het is om over te stappen of DIVS.

Als iemand tot dan de tussenoplossing heeft zou dat fijn zijn

Een zoekmachine kan heel slecht met frames overweg. Het zijn namelijk losse pagina's zonder een echt verband.
Ik zal eens kijken of ik er uit kom, en anders los ik het eenmalig op een simpele manier op. Heb inmiddels contact gehad met de designer en hij gaf aan dat het beter was om alles om te zetten naar DIV's en zo. Is alleen redelijk wat werk geloof ik. Dus nu nog maar even zo. Als ik dit stukje voor elkaar krijg dan zijn de meeste "problemen" weg.

Sydo
Hmmm, Toch niet zo makkelijk (voor mij dan).
Heb ik nog wat te puzzelen dus.

Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.


@ San The : Niet de bedoeling om te bumpen.


@TJVB Ik kom inmiddels iets verder maar in mijn code staat niks over frame en frame set.
Boven aan in index.php staat <base target="iframeinhoud">
midden in staat <iframe name="iframeinhoud" scrolling="auto" src="home.php" width="900" frameborder="0" height="388"></iframe>

Het is mij nog niet duidelijk hoe de pagina's weten dat ze in het Iframeinhoud moeten komen en ook niet hoe jouw code toe te passen is op mijn pagina's. Ik hoop dat je nog een tip hebt.

Groeten,

Sydo

Hallo,

Nog een beetje hulp gevraagd.

De code is inmiddels duidelijk echter zie ik niet het nut van het switch statement omdat $inhoud fixed op "home.php" wordt gezet. Als $inhoud ergens veranderd dan heeft het wel nut en dat is denk ik wat nodig is.

In mijn code wordt alleen in index.php een referentie naar het frame gemaakt
<iframe name="iframeinhoud" scrolling="auto" width="100%" frameborder="0" height="388" src="<?php echo $inhoud; ?>" ></iframe>

Dit stukje werkt en ik zie dan ook de URL veranderen als ik mijn site open.
(bijna) Alle andere pagina's worden geladen in het frame als je op een menu-item klikt. In menu.php is de enige referentie naar mijn frame de volgende:
<base target="iframeinhoud">

De code voor een menu-item is :

<TR>
<TD
onmouseover="this.style.backgroundColor='#646464';"
onmouseout="this.style.backgroundColor='';"
bgColor=#40474f><FONT color=#cccccc>- <a href="aanbiedingen.php">Aanbiedingen</A></FONT></TD></TR>
<TR>
<TD

Als ik hier op klik wordt netjes de aanbiedingen.php in mijn frame geladen. Ik kan alleen nergens zien hoe. En ik weet niet hoe de framecheck te doen verder omdat $inhoud geen global variable is.

Kun je me nog de laatste voorzet geven om dit op te lossen?



Reageren