login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Php / Tpl] Pagina weergeeft niets.

Offline mike87 - 24/08/2006 21:30 (laatste wijziging 24/08/2006 22:57)
Avatar van mike87Nieuw lid Ik zit met een probleem waar ik me al een tijd blind op kijk. Ik zie zelf echt totaal niet waar ik de fout in ga.

Mijn probleem:
Ik heb een systeem waarin leden een stuk of 15 rangen kunnen hebben. Nu wordt er, afhankelijk van de rank een block uit een tpl bestand geopend.
Elk block heeft precies dezelfde naam als de rang zodat deze makkelijk geladen kan worden zonder een lange if-else statement.

Maar nu verschijnt er maar niets op het beeld, en ik zie zelf niet waar ik de mist ik ga.

Me code:
  1. <?php
  2. ## Query's
  3.  
  4. $Query = mysql_query("SELECT id, Naam, Capo FROM Members WHERE Naam='".$_SESSION['User']."' ") or die ( mysql_error() );
  5. $Get = mysql_fetch_assoc($Query);
  6.  
  7. $Query2 = mysql_query("SELECT * FROM History WHERE LidId='".$Get['id']."'") or die ( mysql_error() );
  8. $Fetch = mysql_fetch_assoc($Query2);
  9.  
  10. echo $Fetch['Rang'];
  11.  
  12. ## Content
  13.  
  14. $Template = new TemplatePower('TPL/Gegevens.tpl');
  15.  
  16. $Template->prepare();
  17.  
  18.  
  19. if ( isset ( $_GET['Aktie'] ) and $_GET['Aktie'] == 'Wijzig' ) {
  20.  
  21. echo 'lol';
  22.  
  23.  
  24. }
  25. else {
  26.  
  27. $Template->newBlock( $Fetch['Rang'] );
  28.  
  29. $Template->assign( array ( 'UserName' => $_SESSION['User'],
  30. 'Rp' => $Fetch['Rp'],
  31. 'Ks' => $Fetch['Ks'],
  32. 'Kogels' => $Fetch['Kogels'],
  33. 'Capo' => $Get['Capo'],
  34. 'Positie' => $Fetch['Positie'],
  35. 'Autos' => $Fetch['Autos'],
  36. 'Uitbraken' => $Fetch['Uitbraken']
  37. ) );
  38.  
  39. $Template->printToScreen();
  40.  
  41. exit();
  42.  
  43. }
  44. ?>


$Fetch['Rang'] bevat overgigens wel de rang van het lid, dit heb ik zelf gecontroleerd. Zelfs nadat ik zelf een rang type op de plek waarin het block wordt aangeroepen, komt er niks in het beeld.

De link naar het TPL bestand klopt ook, de naam klopt ook.

Wie o wie ziet, wat ik waarschijnelijk niet zie?

(Ik krijg geen errors te zien)

Murfy edit: hoe komen jullie toch allemaal op de niet bestaande vervoeging "hij weergeeft"? How about "Hij geeft weer"?


OPGELOST
Typfoutje in het TPL bestand bij het afsluiten van een block.

11 antwoorden

Gesponsorde links
Offline WimJ - 24/08/2006 21:37 (laatste wijziging 24/08/2006 21:41)
Avatar van WimJ Grafische gevorderde Even de code op plaatscode.be gezet, werkt beter..

plaatscode.be url: http://www.plaatscode.be/2237/

EDIT:

Mischien omdat je de file die templatepower actief zet in deze page, niet aanroept ?

Je moet normaal een bepaalde file includen voor de page duidelijk te maken dat templatepower wordt gebruikt.. ??

Als je kijkt bij tutorials, en dan onder categorie php, zie je het staan.

dat hij volgende onderstaande file aanroept, voor te werken.

  1. include("class.TemplatePower.inc.php");
Offline mike87 - 24/08/2006 21:42
Avatar van mike87 Nieuw lid Dat gebeurd in een ander bestand.

Ik werk met een pagina systeem, en op de index wordt TemplatePower al aangeroepen.
Offline ikkedikke - 24/08/2006 21:45
Avatar van ikkedikke PHP expert echo die Fetch['rang'] eens. dikke kans dat de fout daar zit.
Offline WimJ - 24/08/2006 21:45
Avatar van WimJ Grafische gevorderde http://www.plaatscode.be/2238/

Probeer het toch is met deze code ?
Heb er gewoon die include ingezet.

Anders als dit niet werkt ga ik nog even rond zien, maar toch probeer eens.
Offline mike87 - 24/08/2006 22:02
Avatar van mike87 Nieuw lid Dat zal niks uitmaken, want andere pagina's pakt ie wel gewoon.

en @ ikkedikke in me openingspost zei ik dat $Fetch['Rang'] gewoon een rang bevatte en ook is er een block aanwezig met dezelfde naam.
Offline Rens - 24/08/2006 22:03
Avatar van Rens Gouden medaille

Crew algemeen
Plaats je .tpl bestand eens op plaatscode.be...
Offline mike87 - 24/08/2006 22:11
Avatar van mike87 Nieuw lid Dat is een bestand van een paar 1030 regels 

Maar de opbouw is iig:

<!-- START BLOCK : RangNaam -->
hier een tabel en formulier.
<!-- END BLOCK : RangNaam -->
Offline WimJ - 24/08/2006 22:22
Avatar van WimJ Grafische gevorderde en dan plaatscode.be kan 1030 regels wel aan hoor 
Offline mike87 - 24/08/2006 22:26
Avatar van mike87 Nieuw lid http://www.plaatscode.be/2240/  
Offline Rens - 24/08/2006 23:24 (laatste wijziging 24/08/2006 23:25)
Avatar van Rens Gouden medaille

Crew algemeen
Wat me opvalt is dat je behoorlijk onlogisch bezig bent.
Je maakt voor elke rang een blok, terwijl het enige verschil hem zit in:
  1. <option selected="selected" value="Godfather / First Lady">Godfather / First Lady</option>

Hier is het enige verschil met het blok Bruglione dat je de selected="selected" bij Godfather hebt staan...
En volgens mij mogen spaties in bloknamen niet...

Maar om daar te gaan over die blokken van jou.
Als je het volgende blok hebt:
  1. <!-- START BLOCK : RANG -->
  2. <form action="index.php?Pagina=Wijzig.php&Aktie=Wijzig" method="post" name="Gegevens" id="Gegevens">
  3. <table width="420" border="0" cellpadding="3" cellspacing="2">
  4. <tr>
  5. <td colspan="2" align="center" class="Onderdeel"><b>:: Gegevens </b></td>
  6. </tr>
  7. <tr>
  8. <td width="216" class="Info"><b>Gebruikersnaam:</b></td>
  9. <td width="218" class="Info"><input class="Field" name="Naam" type="text" value="{UserName}" /></td>
  10. </tr>
  11. <tr>
  12. <td width="216" class="Info"><b>Rang:</b></td>
  13. <td width="218" class="Info"> <select name="Rang" id="Rang">
  14. <option value="Empty-Suit" {SELECT_EEN}>Empty-Suit</option>
  15. <option value="Deliveryboy / Delivery Girl" {SELECT_TWEE}>Deliveryboy / Delivery Girl</option>
  16. <option value="Picciotto" {SELECT_TWEE}>Picciotto</option>
  17. </select> </td>
  18. </tr>
  19. <tr>
  20. <td width="216" class="Info"><b>Rang vordering:</b></td>
  21. <td width="218" class="Info"><input class="Field" name="Rp" type="text" value="{RP}" />%</td>
  22. </tr>
  23. <tr>
  24. <td width="216" class="Info"><b>Moord ervaring:</b></td>
  25. <td width="218" class="Info"><input class="Field" name="Ks" type="text" value="{KS}" />%</td>
  26. </tr>
  27. <tr>
  28. <td width="216" class="Info"><b>Kogels:</b></td>
  29. <td width="218" class="Info"><input class="Field" name="Kogels" type="text" value="{Kogels}" /></td>
  30. </tr>
  31. <tr>
  32. <td width="216" class="Info"><b>Capo:</b></td>
  33. <td width="218" class="Info"><input class="Field" name="Capo" type="text" value="{Capo}" /></td>
  34. </tr>
  35. <tr>
  36. <td width="216" class="Info"><b>Positie:</b></td>
  37. <td width="218" class="Info">#<input class="Field" name="Positie" type="text" value="{Positie}" /></td>
  38. </tr>
  39. <tr>
  40. <td width="216" class="Info"><b>Auto's:</b></td>
  41. <td width="218" class="Info"><input class="Field" name="Autos" type="text" value="{Autos}" /></td>
  42. </tr>
  43. <tr>
  44. <td width="216" class="Info"><b>Uitbraken:</b></td>
  45. <td width="218" class="Info"><input class="Field" name="Uitbraken" type="text" value="{Uitbraken}" /></td>
  46. </tr>
  47. <tr>
  48. <td class="Info"><img src="Images/Button_Cancel.jpg" onClick="document.getElementById('Gegevens').reset();" style="cursor: pointer;" alt="Reset" /></td>
  49. <td class="Info"><img src="Images/Button_Wijzig.jpg" onClick="document.getElementById('Gegevens').submit();" style="cursor: pointer;" alt="Submit" /></td>
  50. </tr>
  51. </table>
  52. </form>
  53. <!-- END BLOCK : RANG -->


Kun je alsnog de juiste rang selecteren.
Ik ga even uit van het volgende:
Rang 1 = Empty-Suit
Rang 2 = Deliveryboy / Delivery Girl
Rang 3 = Picciotto
Dan maak je een switch:
  1. <?PHP
  2. $sSelect = "SELECT_";
  3. switch($Fetch['rang'])
  4. {
  5. case "1":
  6. $sSelect .= "EEN";
  7. break;
  8. case "2":
  9. $sSelect .= "TWEE";
  10. break;
  11. case "3":
  12. $sSelect .= "DRIE";
  13. break;
  14. }
  15. $Template->newBlock("RANG");
  16. $Template->assign(array(
  17. "UserName" => $_SESSION['User'],
  18. $sSelect => 'selected="selected"'
  19. ));
  20. ?>

Weet niet 100% zeker of het zo werkt, dacht van.
Zo heb je maar 1 blok nodig, word de juiste rang geselecteerd en de rest ge-assigned.
(Volledige .tpl op http://www.plaatscode.be/2243/)

Succes 
Offline Thomas - 25/08/2006 09:31 (laatste wijziging 25/08/2006 09:32)
Avatar van Thomas Moderator Nog beter is om je select-box dynamisch op te bouwen, want stel dat je een gigantische dropdown hebt, dan zou je voor elke option een template-variabele moeten introduceren, en dat is erg foutgevoelig, en geen doen.

Je template-variabele deels laat bestaan uit een opgeslagen waarde is ook geen goed idee, omdat als deze naam verandert de optie niet meer goed geselecteerd wordt:

Stel dat je "iets" opslaat, en op grond van deze waarde de "iets"-optie selecteert, dan heb je in principe maar één assignment nodig:

template
  1. <option value="iets"{IETS_SELECTED}>Iets</option>


code
  1. // $db['result'] bevat de waarde "iets"
  2. $tpl->assign(strtoupper($db['result'])."_SELECTED", ' selected="selected"');


Wanneer nu de "iets"-optie van waarde verandert, ben je redelijk in de aap gelogeerd...

Wat ik doe is al deze "dynamische delen" van een formulier opslaan in een database-tabel, waarbij de waarde(n) bij een optie voorgesteld worden door een nummer, en de tekst die hier aanhangt kan daardoor vrij veranderen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.271s