[PHP/SMARTY] Smarty variabele doorgeven aan PHP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tha_Spike_1981
  • Registratie: April 2003
  • Laatst online: 25-06-2022
Ik heb een smarty template en in die templates staan 2 for loops. De 1e loop is om het eerste merk op te halen, de 2e is om van dat merk alle types binnen te halen. Daarna gaat hij naar het volgende merk en haalt hij weer alle types op. Etc.

Nu is mijn vraag nadat mijn smarty template 1x heeft geloopt ik eigenlijk de waarde van section name=i naar php moet sturen, om weer de juiste data op te halen. Nu ben pas begonnen met Smarty Templates dus ik zou het niet weten hoe dat moet, op http://smarty.php.net kan ik namelijk een hoop functies vinden maar niet echt voorbeelden.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{* categories_list.tpl *}
{load_products_list assign="products_list"}
{* start category list *}
<table border="0" cellpadding="0" cellspacing="1" width="400">
  <tr>       
    <td class="CategoryListHead"> Kies een abonnement </td>
  </tr>      
  <tr>       
    <td class="CategoryListContent">        
       {section name=i loop=$products_list->mBrands}
       
        {section name=y loop=$products_list->mPhones}
            <a class="{$class_d}" href="{$products_list->mBrands[i].onclick|escape:"html"}">{$products_list->mBrands[i].phone_brand_name}   
            <a class="{$class_d}" href="{$products_list->mPhones[i].onclick|escape:"html"}">{$products_list->mPhones[y].phone_type_name}            
            <br>
       {/section}
       {* hier moet iets doorgegeven worden aan php *}       
       {/section}
    </td>    
  </tr>      
</table>     
{* end category list *}

Acties:
  • 0 Henk 'm!

Verwijderd

Je moet zorgen dat mPhones een 2-dimensionale array is, d.w.z. dat mPhones[i][y] het type oplevert van brand i. Informatie 'teruggeven' aan PHP, zoals jij aangeeft, gaat niet echt werken.

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Het is niet de bedoeling dat je de data gaat aantrekken vanuit je template, maar dat je de data naar je template stuurt ($smarty->assign('var','value); vanuit PHP. Of snap ik je verkeerd?

Acties:
  • 0 Henk 'm!

  • dingstje
  • Registratie: Augustus 2002
  • Laatst online: 02-01-2024
Verwijderd schreef op vrijdag 28 oktober 2005 @ 16:33:
Je moet zorgen dat mPhones een 2-dimensionale array is, d.w.z. dat mPhones[i][y] het type oplevert van brand i. Informatie 'teruggeven' aan PHP, zoals jij aangeeft, gaat niet echt werken.
Het zou wel kunnen werken als je een eigen functie definieert in je template (getBrands() bijvoorbeeld) en dan als volgt aanroept in je template file:
code:
1
{assign var=brands value=getBrands($parentid)}

Maar dat is imho niet de beste oplossing, aangezien je dan voor elke parent een query gaat draaien om de child elements te krijgen. Een betere oplossing is - zoals mijn bovenbuurman al zegt - een tweedimensionale array maken met daarin de child elements per parent.
code:
1
2
3
4
5
6
7
8
9
10
11
Array(
0 => Array(
    'id' => 1
    'name' => 'Foo',
    'children' => Array(
        0 => Array(
            'id' => 1,
            'name' => 'Bar'
        )
    )
))

[ Voor 8% gewijzigd door dingstje op 28-10-2005 16:40 . Reden: haakje vergeten ]

If you can't beat them, try harder


Acties:
  • 0 Henk 'm!

Verwijderd

@dingstje: Tja, het kan wel, maar dat is niet het idee achter een template, maar dat weet jij ook wel denk ik :). Op onze/mijn manier moet het gewoon werken, hij had het al bijna :+.

Acties:
  • 0 Henk 'm!

  • Tha_Spike_1981
  • Registratie: April 2003
  • Laatst online: 25-06-2022
Ok, bedankt voor de tips. Ik weet genoeg!
Pagina: 1