login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Template-output opvangen en doorsturen naar AJAX

Offline Dark_Paul - 03/10/2007 17:18
Avatar van Dark_PaulPHP ver gevorderde He,
Ik roep een pagina aan via AJAX. Die PHP-pagina maakt gebruik van een template. Echter, het lukt me niet om de inhoud van de template 'door te sturen' naar AJAX.
Als ik een gewone echo in het op te roepen PHP-bestand zet, wordt die wel getoond. Alleen de gevulde template krijg ik niet op het scherm.
TemplatePower geeft geen errors, dus ik ga er vanuit dat de template correct gevuld wordt.
Ik heb al geprobeerd met getOutputContent(), maar daarmee lukte het me ook niet.
Ik heb ook al een ouder topic hierover gevonden (de inhoud opvangen en in een mail sturen) maar daar stond de oplossing voor mij niet in.
search_side.php: Plaatscode: 3497
search_side.tpl: Plaatscode: 3498
AJAX-functie: Plaatscode: 3499

4 antwoorden

Gesponsorde links
Offline MindPrison - 03/10/2007 20:01
Avatar van MindPrison PHP gevorderde Wat je wil kan toch niet? Templates = server based, AJAX = client-based
Offline Dark_Paul - 03/10/2007 22:23 (laatste wijziging 03/10/2007 22:25)
Avatar van Dark_Paul PHP ver gevorderde Jawel, dat kan wel.
Met AJAX kan je een PHP-pagina aanroepen. Vervolgens kan je de uitvoer van die pagina tonen, zonder dat de pagina is ververst.
Met de php-pagina wil ik dus de template vullen en die als output terugsturen naar AJAX, in plaats van de html inbakken in de php-pagina.
Zoals er staat, als ik een gewone echo in het php-bestand zet, krijg ik die wel te zien zoals het hoort.
Ik moet op de een of andere manier de template opvangen in een string en die terugsturen ofzo...
Offline ikkedikke - 03/10/2007 23:58
Avatar van ikkedikke PHP expert kijk eens naar de kleurtjes.. daar klopt iets niet.
Offline Dark_Paul - 04/10/2007 09:39 (laatste wijziging 16/10/2007 19:10)
Avatar van Dark_Paul PHP ver gevorderde Dat is een beetje stom van Plaatscode.be. Want ik heb in mijn code nergens backslashes staan. Plaatscode escaped alle double quotes. *Mods, even fixen?
Het is gewoon een input/output-foutje van Plaatscode. Ik kan je verzekeren dat de originele code in orde is. Ik werk met UltraEdit-32 en de kleurtjes kloppen daarbij wel gewoon.
Hier de code van search_side.php:
  1. <?php
  2. // requires
  3. require('includes/templatepower/class.TemplatePower.inc.php');
  4. require('includes/config.inc.php');
  5.  
  6. $tpl = new TemplatePower('templates/search_side.tpl');
  7. $tpl -> Prepare();
  8. $i = 0;
  9.  
  10.  
  11. if (isset($_GET['q']) && eregi("^[a-z0-9\-]$", $_GET['q'])) {
  12. $q = addslashes($_GET['q']);
  13. $qSearch = mysql_query("SELECT voorvoegsel, voornaam, tussenvoegsel, achternaam, examenjaar FROM inschrijvingen WHERE achternaam LIKE '%".$q."%' OR examenjaar = '".$q."' ");
  14. if (mysql_num_rows($qSearch) > 0) {
  15. $tpl -> NewBlock('ZOEKRESULTATEN');
  16. $tpl -> Assign('resultaten', mysql_num_rows($qSearch));
  17. if (mysql_num_rows($qSearch) > 5) {
  18. $tpl -> NewBlock('ZOEKRESULTATEN_TOON_EXTRA');
  19. $tpl -> Assign('search', $_GET['q']);
  20. }
  21. while ($aRes = mysql_fetch_assoc($qSearch) && $i < 5) {
  22. $voorletter = substr($aRes['voornaam'], 0, 1);
  23. $tpl -> NewBlock('ZOEKRESULTAAT_DEELNEMER');
  24. $tpl -> Assign($aRes);
  25. $tpl -> Assign('voorletter', $voorletter);
  26. $i++;
  27. }
  28. }
  29. else {
  30. $tpl -> NewBlock('GEEN_RESULTATEN');
  31. }
  32. }
  33.  
  34. $Output = $tpl -> GetOutputContent();
  35.  
  36. echo $Output;
  37.  
  38. ?>


//Edit
Ik heb het zojuist ook geprobeerd met
print($tpl -> GetOutputContent());
maar dat werkte ook niet. Dat was een manier die op de site van TemplatePower zelf stond (voor als MagicQuotes aan stond, maar toch proberen he).

//Edit 2
Ondertussen ben ik nog steeds aan het zoeken, maar tot nu toe is niets gelukt.
Alles dat ik echo krijg ik als output terug, behalve de template-content. Als ik die in een alert gooi, krijg ik wel al het begin van de template te zien.
Ik heb ook nog met het pad van de template zitten klooien, omdat ik ook mod rewrite gebruik, maar dat helpt niet. Dan krijg ik de error van TemplatePower dat het template-bestand niet kan worden gevonden (die error wordt trouwens wél goed teruggestuurd).
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s