login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[TPL]Assignen

Offline Dark_Paul - 10/04/2007 21:22
Avatar van Dark_PaulPHP ver gevorderde He,

Ik probeer wat waardes toe te kennen aan variabelen, maar het wil niet erg hard lukken.. Ik heb me er blind op gestaard, het zal iets doms zijn, maar ik zie het écht niet.
Stukje tpl:
  1. <!-- START BLOCK : view_employees -->
  2. <strong>Name | Level | Sale/hour | Cost/hour | Hired on | Fire</strong><br />
  3. <form method="post" action="employ.php?action=fire">
  4. <!-- START BLOCK : employee -->
  5. {name} | {employee_level} | {sale} | {cost} | {hired} | <input type="text" name="fire[{id}]" style="width:40px;" /><br />
  6. <!-- END BLOCK : employee -->
  7. <a href="#" onclick="javascript: document.forms[0].submit();" />Fire employees</a>
  8. </form>
  9. <!-- END BLOCK : view_employees -->


En de bijbehorende PHP:
  1. <?php
  2.  
  3. $qry = mysql_query("SELECT employees.id, employees.name, employees.employee_level, employees.cost, employees.sale,
  4. employees_hired.employee_level, employees_hired.hired
  5. FROM employees INNER JOIN employees_hired ON (employees.employee_level = employees_hired.employee_level)
  6. WHERE memid = ".$_SESSION['id']." ORDER BY employees.employee_level");
  7.  
  8. if ($emps > 0) {
  9. $tpl -> NewBlock('view_employees');
  10.  
  11. while ($res = mysql_fetch_assoc($qry)) {
  12. print_r($res);
  13. $tpl -> NewBlock('employee');
  14. foreach ($res as $key => $value) {
  15. $tpl -> Assign($key, $value);
  16. }
  17. }
  18. }
  19. else {
  20. $tpl -> NewBlock('error');
  21. $tpl -> Assign('error', 'No employees hired yet!');
  22. }
  23.  
  24. ?>

Ik krijg de print_r wel te zien, daar staat ook alles in, maar er wordt niets toegekend.
Ik weet dat er geen Prepare() en PrintToScreen() bij staat, want dit PHP-bestand wordt geïnclude, de Prepare() en Printtoscreen() staan op de index.
Dit geeft print_r($res); terug:
  1. Array ( [id] => 15 [name] => Level 15 [employee_level] => 15 [cost] => 400 [sale] => 200 [hired] => 10 )

4 antwoorden

Gesponsorde links
Offline Stijn - 10/04/2007 21:49
Avatar van Stijn PHP expert het is

  1. $tpl -> newBlock(....);


en

  1. $tpl -> assign(....);
Offline Dark_Paul - 11/04/2007 16:45 (laatste wijziging 15/04/2007 16:51)
Avatar van Dark_Paul PHP ver gevorderde Je bedoelt met hoofdletters? Daar heb ik namelijk nooit last van gehad, ik gebruik overal NewBlock() en Assign().

Ik heb het net geprobeerd, dat was niet de oplossing. Ik had het ook niet verwacht, maar toch even proberen.
Offline nemesiskoen - 15/04/2007 18:14
Avatar van nemesiskoen Gouden medaille

PHP expert
PHP is bij de meeste zaken case-insesitive (niet bij variabelen), dus dat zal het zeker niet zijn.

  1. foreach ($res as $key => $value) {
  2. $tpl -> Assign($key, $value);
  3. }

equals:
  1. $tpl->assign($res);


Wat de fout betreft, ik ga er vanuit dat er iets fout is in de view, ik heb er ook even op liggen staren maar nog niet gevonden, maar wss is het bij de blocks dat het fout gaat. Een syntaxfout dus, maarja tpp let daar niet op, die slaat dat dan gewoon over.
Offline Dark_Paul - 17/04/2007 13:53
Avatar van Dark_Paul PHP ver gevorderde Die 2e manier is inderdaad een stukje gemakkelijker.
Helemaal niet aan gedacht, bedankt daarvoor!
Ik zal me nog eens blind gaan staren op die blocks, misschien dat ik ergens een tikfout heb gemaakt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.252s