Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Smarty] Dwukrotnie foreach na tej samej tablicy ?
Forum PHP.pl > Forum > Przedszkole
bobekrj
Witam.
Mam tablice $module_data.GRADUATED_PRICE i wyświetlam ją w "pionowo" jako tabela - 2 kolumny, kilka wierszy :
Kod
<table>
{foreach name=aussen item=module_data from=$module_data.GRADUATED_PRICE}
   <tr>
    <td> {$module_data.QUANTITY} </td>
    <td> {$module_data.PRICE} </td>
   </tr>
{/foreach}
</table>

Działa ok, ale chciałbym wyświetlić to "poziomo" czyli tabela - 2 wiersze , kilka kolumn - górny wiersz: QUANTITY, dolny: PRICE .
W html nie wiem jak i wpadłem na pomysł - dwukrotnie foreach :
Kod
<table>
    <tr>
        {foreach name=qty item=module_data from=$module_data.GRADUATED_PRICE}  
            <td>{$module_data.QUANTITY} </td>
        {/foreach}
    </tr>
    <tr>
        {foreach name=price item=module_data from=$module_data.GRADUATED_PRICE}             
            <td>{$module_data.PRICE}</td>            
        {/foreach}
    </tr>
</table>

Działa tylko pierwsza pętla, druga nie. Myślę, że może wskaźnik stoi poza ostatnim indeksem tablicy, ale nie wiem jak przeskoczyć na first.
A może można jakoś wyświetlić to za pomocą jednej pętli foreach.
Dziekuje za wszelkie rady. RJ.
michal_robak
A czy przypadkiem nie chodzi ci o taki efekt:

Kod
<tr>
{foreach name=aussen item=module_data from=$module_data.GRADUATED_PRICE}
    <td>
        <table >
            <tr>
                <td> {$module_data.QUANTITY} </td>
            </tr>
            <tr>
                <td> {$module_data.PRICE} </td>
            </tr>
        </table>
    </td>
{/foreach}
</tr>


całość będzie ci szła poziomo
Gość
Dziękuję działa , chociaż nieźle się rozrosło ( ok 40 - 70 nowych tabelek na stronie).
Myślę, że pójdę w tym kierunku i zrobię 1-wierszową tabelę i do każdego td wstawię: quantity <br> price lub cos w tym stylu.
Dziękuję i pozdrawiam. R.J.
-michal_robak-
mozesz troche to zoptymalizować i dać dwa razy pętle. Na początku same QUANTITY zeby zbudować jeden długi wiersz a potem drugi wiersz zaoszczedzając kodu:

  1. <tr>
  2. {foreach do pobrania QUANTITY}
  3. <td>
  4. {$module_data.QUANTITY}
  5. </td>
  6. {/foreach}
  7. </tr>
  8. <tr>
  9. {foreach do pobrania QUANTITY}
  10. <td>
  11. {$module_data.PRICE}
  12. </td>
  13. {/foreach}
  14. </tr>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.