login  Naam:   Wachtwoord: 
Registreer je!
 Forum

templatehulp | Pagina 2

36 antwoorden

Gesponsorde links
Offline marten - 27/04/2006 20:55
Avatar van marten Beheerder
Citaat:
@marten: Waarom zie ik jou de laatste tijd zoveel spammen? Wil je een ban ofzo?


bij deze mijn oprechte excuses daarvoor. Ben de laatste tijd veel op sitemasters en dan wil ik weleens wat teveel posten. Het zal niet meer gebeuren vanaf nu
Offline Thomas - 28/04/2006 09:13
Avatar van Thomas Moderator
Citaat:
@ikkedikke als ik je reactie goed lees zeg je dat '' wel moet, maar ik heb tegendeel bewezen , want wat siliecom14 daar neerzet werkt gewoon , het kan wel zijn dat er '' omheen kunnen maar het is iig niet verplicht (denk ik )
Omdat iets werkt, wil dat nog niet zeggen dat het goed is.

Op het moment dat je aan een constante een waarde toekent die verschilt van de / een template-variabele, werkt het waarschijnlijk niet meer.

Werk gewoon met quotes (zoals het hoort gezien vanuit programmeertechnisch inzicht, en ook vanuit "gezond gebruik" van de templatepower-class).
Offline shibble - 28/04/2006 09:18 (laatste wijziging 28/04/2006 10:12)
Avatar van shibble MySQL interesse TemplatePower is een zeer goede template-engine gebruik het zelf ook heb het snel geleerd en het is fijn alleen ik zit nu ff vast 

UPDATE:

Ik zit niet meer vast.
Offline Ultimatum - 28/04/2006 22:39 (laatste wijziging 28/04/2006 22:41)
Avatar van Ultimatum PHP expert sorry voor het ophalen van dit al bijna "dode" topic, maar zit even vast 

dmv dit stukje dat Prox voor mij had geschreven wil ik meerdere fouten op het scherm laten zien..

  1. <?php
  2. $aErrors = array();
  3.  
  4. if (empty($_POST['title'])) {
  5. $aErrors[] = '- You need to fill in a title';
  6. }elseif (strlen($_POST['title']) < 3) {
  7. $aErrors[] = '- The title must contain at least 3 characters';
  8. }elseif (strlen($_POST['title']) > 200) {
  9. $aErrors[] = '- The title can not contain more then 200 characters';
  10. }
  11.  
  12. if (empty($_POST['message'])) {
  13. $aErrors[] = '- You need to fill in a message';
  14. }elseif (strlen($_POST['message']) < 3) {
  15. $aErrors[] = '- Your message must contain at least 3 characters';
  16. }elseif (strlen($_POST['title']) > 1000) {
  17. $aErrors[] = '- Your message can not contain more then 1000 characters';
  18. }
  19.  
  20. $iErrors = count($aErrors);
  21.  
  22. if ($iErrors > 0) {
  23. $tpl->newBlock("errors");
  24. for ($i = 0; $i < $iErrors; $i++) {
  25. $tpl->assign("error", "$aErrors[$i]");
  26. }
  27. }else{
  28. echo "Voert een query uit, die ik nog niet heb geschreven";
  29. }
  30. ?>


maar dit stukje werkt niet goed
  1. <?php
  2. if ($iErrors > 0) {
  3. $tpl->newBlock("errors");
  4. for ($i = 0; $i < $iErrors; $i++) {
  5. $tpl->assign("error", "$aErrors[$i]");
  6. }
  7. }else{
  8. echo "Ok";
  9. }
  10. ?>


heb 2 velden title en message, maar laat ik ze beide leeg dan zie je alleen de error van dat je een bericht moet invullen en vul je die in dan pas krijg je dat title leeg is 

dit zit in de tpl file, maar kan me niet voorstellen dat dit fout (maar je weet maar nooit met mij )

  1. <!-- START BLOCK : errors -->
  2. <table style="width: 100%; margin-left: 5px" cellpadding="0" cellspacing="0">
  3. <tr>
  4. <td valign="top"><b>The following error(s) did occure</b></td>
  5. </tr>
  6. <tr>
  7. <td valign="top">{error}</td>
  8. </tr>
  9. <tr>
  10. <td valign="top"><br /><a href="javascript:history.go(-1);">Go back</a> to fix the error.</td>
  11. </tr>
  12. </table>
  13. <!-- END BLOCK : errors -->


probleem: hij zegt dus dat er maar 1 fout is terwijl er maar 1 is, btw hij pakt ook eerst het 2de if statement en dan pas de eerste, wat ik ook vreemd vond (geeft eerst aan dat message leeg is en als die niet leeg is dan pas dat title leeg is )
Offline marten - 29/04/2006 04:57
Avatar van marten Beheerder
  1. <?php
  2. if ($iErrors > 0) {
  3. $tpl->newBlock("errors");
  4. for ($i = 0; $i < $iErrors; $i++) {
  5. $tpl->assign("error", "$aErrors[$i]");
  6. }
  7. }else{
  8. echo "Ok";
  9. }
  10. ?>


Je overschrijft hier steeds de waarde 'error'. Daar moet je dus ook iets mee doen. bv:

  1. <?php
  2. if ($iErrors > 0) {
  3. $tpl->newBlock("errors");
  4. for ($i = 0; $i < $iErrors; $i++) {
  5. $tpl->assign("error".[$i]."", "$aErrors[$i]");
  6. }
  7. }else{
  8. echo "Ok";
  9. }
  10. ?>


Citaat:
hij zegt dus dat er maar 1 fout is terwijl er maar 1 is

lol 
Offline Maarten - 29/04/2006 09:59 (laatste wijziging 29/04/2006 10:00)
Avatar van Maarten Erelid Neenee, zo werkt dat niet marten.
Hiervoor gebruik je blocks. Voorbeeldje:
form.tpl
  1. <!-- START BLOCK : fouten -->
  2. Het formulier is niet verstuurd:
  3. <ul>
  4. <!-- START BLOCK : fout -->
  5. <li>{fout}</li>
  6. <!-- START BLOCK : fout -->
  7. </ul>
  8. <!-- END BLOCk : fouten -->


form.php
  1. <?php
  2. if(count($aErrors) > 0) {
  3. $tpl->newBlock('fouten');
  4. for($i = 0; isset($aErrors[$i]); $i++) {
  5. $tpl->newBlock('fout');
  6. $tpl->assign('fout',$aErrors[$i]);
  7. }
  8. } else {
  9. echo 'Ok.';
  10. }
  11. ?>


Het blok fout kan dus meerdere keren worden aangemaakt waardoor deze ook meerdere keren getoond wordt, met iedere keer een andere waarde. De naam van die variabele fout en de bloknaam zijn nu toevallig gelijk, dus dat maakt niet uit.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.25s