Ankündigung

Einklappen
Keine Ankündigung bisher.

Template: Verschachteln von foreach

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Template: Verschachteln von foreach

    Moin Moin. Ich benutze Smarty für Templates und das zum ersten mal.

    Das will ich erreichen:
    Ich habe navi.tpl und möchte die Navigation aus einer Datenbank raus erstellen. Dort gibt es die Tabellen navi und subnavi. navi stellt die Überschrift der Navigationsbox dar und subnavi ist dieser Überschrift mit einzelnen Menüpunkten untergeordnet.

    Mein Problem:
    Ich weiß nicht wie ich dem Template sagen kann, dass er für jede Menübox die Menüpunkte raussucht. Ich habe probleme mit den while Schleifen in der .php Datei, diese richtig an das Template zu geben, so dass das template diese versteht.

    Das hätte ich gerne:
    Ein Beispiel für die Verschachtelung

  • #2
    navi.tpl
    Code:
     {foreach from=$navieintraege item=navi} 
    <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#919191">
            <tr>
              <td>
                <table width="100%" border="0" cellspacing="1" cellpadding="3">
                  <tr> 
                    <td class="thead"> 
                <div align="center">{$navi.titel}</div>
                    </td>
                  </tr>
    				{foreach from=$subnavieintraege item=subnavi}
                   <tr bgcolor="#CCCCCC"> 
                    <td>{$subnavi.titel}</td>
                  </tr>{/foreach}
                </table>
              </td>
            </tr>
          </table>
          
    
    {/foreach}
    Würde ich keine templates benutzen sieht die navi.php so aus:
    PHP-Code:
    <?php
    //Includes
    include("../inc/database.inc"); //Datenbank Verbindung
    include("../inc/config.inc"); //Configuration
    include("../inc/global.inc"); //Globale Funktionen
        
    $sql_query0_1 MySQL_Query("SELECT * FROM navi ORDER BY orderid") or die("MySQL ERROR (".__LINE__."):".mysql_error());;
        while (
    $query0_1 MySQL_Fetch_Array($sql_query0_1)) { 
            
    ?>
          <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#919191">
            <tr>
              <td>
                <table width="100%" border="0" cellspacing="1" cellpadding="3">
                  <tr> 
                    <td class="thead"> 
                      
                <div align="center">[b]<?php echo $query0_1['titel']; ?>[/b]</div>
                    </td>
                  </tr>
                <?php  
                $naviid 
    $query0_1['id']
                    
    $sql_query0_2 MySQL_Query("SELECT * FROM subnavi WHERE sub_nid = $naviid ORDER BY sub_orderid") or die("MySQL ERROR (".__LINE__."):".mysql_error());;
        while (
    $query0_2 MySQL_Fetch_Array($sql_query0_2)) { 
            
    ?>
                  <tr bgcolor="#CCCCCC"> 
                    <td>[url="<?php echo $query0_2['sub_link']; ?>"]<?php echo $query0_2['sub_titel']; ?>[/url]</td>
                  </tr>
                  <?php 
                  

                  
    ?>
                </table>
              </td>
            </tr>
          </table>
          

    <?php
    }
    ?>
    Wie sieht aber die navi.php aus, wenn ich halt templates benutzen? bzw ist die navi.tpl richtig?

    Kommentar


    • #3
      Der Beitrag wurde verschoben, wegen...
      ... Postings im falschen Forum.

      Bemerkung:
      Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

      moved to PHP - Anfänger
      mod = master of disaster

      Kommentar

      Lädt...
      X