login  Naam:   Wachtwoord: 
Registreer je!
 Forum

php functie uitvoeren na volledig laden van pagina

Offline NVZ - 11/09/2008 14:00
Avatar van NVZLid Goeiedag!

Ik loop momenteel tegen een probleempje aan bij het bouwen van een systeempje.
Ik wil een klasse automatisch uit laten voeren wanneer de pagina wordt opgevraagd.

Ik heb het volgende bestand (index.php):
  1. <?php
  2. require_once('frame.php');
  3.  
  4. class index extends frame
  5. {
  6. public function test()
  7. {
  8.  
  9. }
  10. }


NU zou het mooi zijn als de klasse direct word aangeroepen nadat de pagina geladen is. Zonder dat ik in ieder bestand onderaan 'new index;' moet zetten.

Ik wilde dit in het bestand frame.php doen omdat daar de basis klasse in staat. Maar het probleem is dat wanneer ik dat daar (buiten de klasse frame zelf) neerzet dan word het al uitgevoerd nog voordat php de klasse index heeft gelezen.

Is er een functie waarmee je een soort callback kan uitvoeren wanneer de pagina volledig gelezen is?

8 antwoorden

Gesponsorde links
Offline Martijn - 11/09/2008 18:58
Avatar van Martijn Crew PHP t enige wat ik kan bedenken is met ob_start() enzo..
Offline NVZ - 12/09/2008 08:24
Avatar van NVZ Lid Ja, die gedachte is idd ook al bij mij opgekomen, maar ob_start heeft puur met output te maken helaas.
Offline marten - 12/09/2008 08:54
Avatar van marten Beheerder Frames worden eerst ingeladen voordat de frame op de daadwerkelijke pagina wordt laten zien. Hoe je het kan oplossen? Door de frames eruit te slopen.

Nog beter is om door middel van MVC een systeem te bouwen. Deze bevat eigenlijk alleen een index.php. Je hoeft dan ook maar 1x in te laden. Je hebt dus een soort pagina systeem nodig.

Wat je kan proberen om het nu te laten werken is hetvolgende:

Weet echt niet of het gaat werken.
Je kan door middel van javascript kijken of de pagina geladen is. Dit kan door middel van Google.be: domready. Je kan dan door middel van Ajax een class uitvoeren in PHP.
Offline NVZ - 15/09/2008 10:58
Avatar van NVZ Lid Marten,
Ik zag dat ik een foutje heb gemaakt wat blijkbaar voor wat verwarring heeft gezorgd. Ik bedoelde dat php de klasse uit moet voeren wanneer het php bestand volledig geladen is (dus nog aan de server kant)
Offline marten - 15/09/2008 11:01
Avatar van marten Beheerder En je wilt het dus niet op alle pagina's willen herhalen?

dan geldt nog steeds de volgende tekst uit mijn reply:

Citaat:
Frames worden eerst ingeladen voordat de frame op de daadwerkelijke pagina wordt laten zien. Hoe je het kan oplossen? Door de frames eruit te slopen.

Nog beter is om door middel van MVC een systeem te bouwen. Deze bevat eigenlijk alleen een index.php. Je hoeft dan ook maar 1x in te laden. Je hebt dus een soort pagina systeem nodig.


Offline NVZ - 15/09/2008 16:28
Avatar van NVZ Lid Marten,
Het probleem ligt niet aan de client kant. het is een PHP issue wat (nog voordat de pagina naar de client word gestuurd) moet worden uitgevoerd.

Ik heb het woord pagina in mijn eerste post gebruikt maar dat moet eigenlijk 'bestand' zijn. Want php laadt bestanden en geen pagina's.
Offline marten - 15/09/2008 16:33
Avatar van marten Beheerder Laad je in elk bestand je class in?

Dan kan je onder je class de new gelijk maken.

  1. <?php
  2.  
  3. class Test {
  4.  
  5. }
  6.  
  7. $oTest = new Test();
  8.  
  9. ?>
Offline NVZ - 15/09/2008 17:04
Avatar van NVZ Lid en dat wil ik graag automatisch laten doen, zodat ik niet bij elk bestand die new test() hoef te doen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s