login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[smarty] array uitlezen

Offline Supertje80 - 28/04/2010 11:45 (laatste wijziging 28/04/2010 11:47)
Avatar van Supertje80Nieuw lid Ik heb deze array:

Array
(
[0] => Array
(
[kaartnaam] => 2m Temperatuur
[0] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs034.gif
[khtekst] => 03
)

[1] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs064.gif
[khtekst] => 06
)

[2] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs094.gif
[khtekst] => 09
)

[3] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs124.gif
[khtekst] => 12
)

[4] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs154.gif
[khtekst] => 15
)

)

[1] => Array
(
[kaartnaam] => cape - lifted index
[5] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs036.gif
[khtekst] => 03
)

[6] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs066.gif
[khtekst] => 06
)

[7] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs096.gif
[khtekst] => 09
)

[8] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs126.gif
[khtekst] => 12
)

[9] => Array
(
[khhref] => http://www.wetterzentrale.de/pics/Rmgfs156.gif
[khtekst] => 15
)
)

)

Hoe kan ik deze in mijn template uitlezen? Waarschijnlijk met
{foreach}
{foreach}
{/foreach}
{/foreach}

Maar ik weet niet hoe, heb al van alles geprobeerd, maar ik krijg die 'khhref' en 'khtekst' niet zichtbaar op mijn scherm. Het resultaat moet er zo uit komen te zien:

2m Temperatuur
03 06 09 12 15 18

cape - lifted index
03 06 09 12 15 18

7 antwoorden

Gesponsorde links
Offline smoos - 28/04/2010 13:26
Avatar van smoos PHP gevorderde http://www.smar...oreach.php
Offline ArieMedia - 28/04/2010 20:22
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
PHP
  1. <?php
  2. # in $smarty zit de class
  3. # in $aArray staat de bovenstaande array gepost in je topic
  4. $smarty->assign(array('data' => $aArray));
  5. echo $smarty->Fetch('template.tpl');
  6. ?>


Template
  1. {foreach from=$data item=d}
  2. {foreach from=$d.kaartnaam key=kid item=nd}
  3. <strong># {$kid}</strong><br>
  4. Link: {$nd.khhref}
  5. {/foreach}
  6. {/foreach}


Post volgende keer hoe de array er uit ziet in de PHP-code, en niet de output er van aub (of doe beide)
Offline Supertje80 - 01/05/2010 11:42 (laatste wijziging 04/05/2010 10:42)
Avatar van Supertje80 Nieuw lid Ik heb de template aangepast naar dit, maar dat levert een leeg resultaat op.

  1. #
  2. {foreach from=$verwachtingen item="item"}
  3. #
  4. {$item.kaartnaam}
  5. #
  6. {foreach from=$item.kaartnaam item="nd"}
  7. #
  8. <a href="#" style="font-size: 12px;" onmouseover="document.getElementById('afbeelding1').src='{$nd.khhref}' ">
  9. #
  10. {$nd.khtekst}
  11. #
  12. {/foreach}
  13. #
  14. {/foreach}


  1. // php code
  2. #
  3. $smarty->assign("verwachtingen", verwachtingen('1') );
  4. #
  5.  
  6. #
  7. // functie verwachtingen
  8. #
  9. function verwachtingen($deel)
  10. #
  11. {
  12. #
  13. $ar =array();
  14. #
  15. if($deel=='1') {
  16. #
  17. $hrefs = array(0 => 1, 1 => 2, 2 => 6, 3 => 8, 4 => 10, 5 => 13);
  18. #
  19. $kaartnaam = mysql_query("SELECT w.kaartNaam from weerkaartenhref wh RIGHT JOIN weerkaarten w USING (kaartID) LEFT JOIN weerkaartentype wt USING (wktID) WHERE wh.kaartID ='1' OR wh.kaartID ='2' OR wh.kaartID ='6' OR wh.kaartID ='8' OR wh.kaartID ='10' OR wh.kaartID ='13' GROUP BY w.kaartNaam ORDER by w.kaartID ASC"); // 6
  20. #
  21. }
  22. #
  23. else
  24. #
  25. {
  26. #
  27. $hrefs = array(0 => 7, 1 => 9, 2 => 25, 3 => 4, 4 => 5);
  28. #
  29. $kaartnaam = mysql_query("SELECT w.kaartNaam from weerkaartenhref wh RIGHT JOIN weerkaarten w USING (kaartID) LEFT JOIN weerkaartentype wt USING (wktID) WHERE wh.kaartID ='7' OR wh.kaartID ='9' OR wh.kaartID ='25' OR wh.kaartID ='4' OR wh.kaartID ='5' GROUP BY w.kaartNaam ORDER by w.kaartVolgorde ASC");
  30. #
  31. }
  32. #
  33. $i = 0;
  34. #
  35. $b = 0;
  36. #
  37. while($r = mysql_fetch_array($kaartnaam))
  38. #
  39. {
  40. #
  41. $ar[$i][kaartnaam] = $r['kaartNaam'];
  42. #
  43. $sqlhref = mysql_query("SELECT wh.khHref, wh.khTekst from weerkaartenhref wh RIGHT JOIN weerkaarten w USING (kaartID) LEFT JOIN weerkaartentype wt USING (wktID) WHERE wh.kaartID = '".$hrefs[$i]."' ORDER by w.kaartNaam, wh.khHref");
  44. #
  45. while($ra = mysql_fetch_array($sqlhref)) {
  46. #
  47. $ar[$i][$b][khhref] = $ra['khHref'];
  48. #
  49. $ar[$i][$b][khtekst] = $ra['khTekst'];
  50. #
  51. $b++;
  52. #
  53. }
  54. #
  55. $i++;
  56. #
  57. }
  58. #
  59.  
  60. #
  61. return $ar;
  62. #
  63. }

Ik zie niet waar het fout gaat en hoe ik het juiste resultaat krijg. Dus het resultaat moet zijn:

2m Temperatuur
03 06 09 12 15 18

cape - lifted index
03 06 09 12 15 18

Waarbij de cijfers een link zijn naar een plaatje. Wie helpt?

@ArieMedia, in jouw code wordt 'kaartnaam' niet geprint op het scherm. Waar zet je kaartnaam?

Ik heb nog steeds geen oplossing, kan iemand mij aub op weg helpen?
Offline ArieMedia - 04/05/2010 21:06
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Supertje80 schreef:
Ik heb de template aangepast naar dit, maar dat levert een leeg resultaat op.

[..code..]

[..code..]
Ik zie niet waar het fout gaat en hoe ik het juiste resultaat krijg. Dus het resultaat moet zijn:

2m Temperatuur
03 06 09 12 15 18

cape - lifted index
03 06 09 12 15 18

Waarbij de cijfers een link zijn naar een plaatje. Wie helpt?

@ArieMedia, in jouw code wordt 'kaartnaam' niet geprint op het scherm. Waar zet je kaartnaam?

Ik heb nog steeds geen oplossing, kan iemand mij aub op weg helpen?
Vergelijk mijn code eens met jou code.

1) assign staat in een array.
2) item in smarty moet niet tussen quote's
3) Je hebt wat programmeerfoutjes ( $ar[$i][$b][khhref] = $ra['khHref'];) = $ar[$i][$b]['khhref'] = $ra['khHref'];
4) Ik zie in je voorbeeldcode geen "fetch" staan?

Pas dit eerst even aan  
Offline Supertje80 - 05/05/2010 14:40
Avatar van Supertje80 Nieuw lid ArieMedia,

1. ik heb de array nu in assign opgenomen
2. de quotes in de template eruit gehaald
3. die foutjes staan volgens mij niet in de code.  
4. waarom fetch gebruiken? Ik doe het met display. Maar bij beiden krijg ik een leeg resultaat, dus geen enkele waarde uit de array wordt geprint.

De veranderingen:
  1. $aArray = verwachtingen('1');
  2. $smarty->assign(array('data' => $aArray) );
  3. $smarty->fetch("weerkaarten.tpl");


de template:
  1. {foreach from=$data item=d}
  2. {foreach from=$d.kaartnaam key=kid item=nd}
  3. {$kid}
  4. {$nd.khtekst}
  5. {/foreach}
  6. {/foreach}


De array is gevuld, met var_dump gechecked, maar in de template komt niets op scherm.

Graag een zetje in de goede richting  
Offline ArieMedia - 06/05/2010 13:33
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
de fetch moet je echo'en

dus echo $smarty->fetch('weerkaarten.tpl');
display laat je de template gelijk zien (wat ik altijd wil voorkomen).
Offline Supertje80 - 15/05/2010 20:21
Avatar van Supertje80 Nieuw lid Oke, echo gebruikt, er verschijnt nu slechts een beetje resultaat, lang niet alle data uit de array.
Wat er verschijnt is dit:
0
2

0
c

Hoe krijg ik de array uitgelezen, zodat er dit verschijnt:

2m Temperatuur
03 06 09 12 15

cape - lifted index
03 06 09 12 15
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.258s