Template foreach-Funktion

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

  • Template foreach-Funktion

    Hi ich habe folgenden Code um mein Tempalte zu füllen

    PHP-Code:
    while($row[] = mysql_fetch_array($resultSearchSql));
    array_pop($row);
    $template->assign('results',$row
    Templateausschnitt:
    PHP-Code:
    {foreach from=$results item=zeile}
                    <
    class=content href="index.php?action=show&firmennr={$zeile.id}">
                        <
    tr style="cursor:pointer">
                            <
    td class="formInput" width=2bgcolor="{$color}">{$zeile.id}</td>
                            <
    td class="formInput" width=49bgcolor="{$color}">{$zeile.firmenname}</td>
                            <
    td class="formInput" width=49bgcolor="{$color}">{$zeile.ort}</td>
                        </
    tr>
                    </
    a>
                {/foreach} 
    das befüllen klappt auch ganz, wenn mehr als 1 DS gefunden wird macht er auch schön eine neue Zeile usw...

    Jetzt habe ich aber das Problem, das ich zwei Farben für die Tabellenzeile abwechselnd verwenden möchte, ich habe aber im moment keine Idee wie ich das anstellen kann.
    Fällt euch vielleicht was ein?

    Gruß Marcus
    Zuletzt geändert von Toast; 02.12.2005, 21:10.

  • #2
    such mal nach zeilenweise oder auch hintergrundfarbe wechsel oder sowas in der richtung.

    ob du jetzt nen template benutzt oder nicht, ist für den code ja uninteressant. das ist ja der sinn am template

    Kommentar


    • #3
      Hi TobiaZ,

      ich hatte ja den Code für den Farbwechsel auf meiner alten Seite schon drin und hat auch funktionert aber ich stelle gerade die Seiten auf das Templatesystem um und hier komme ich nicht weiter. Ich weiß im moment nicht wie ich in meinen jetztigen code den farbwechsel einbauen muss.

      Marcus

      Kommentar


      • #4
        Habe es gelöst!
        PHP-Code:
        <tr style="cursor: pointer" 
        bgcolor="{cycle values="#e2ddc5,#FFFFFF"}"> 
        Trotzdem Danke

        Marcus

        Kommentar


        • #5
          Hi,

          ich sitze gerade voll auf der Leitung und hoffe das mir einer Helfen kann.
          Folgender Code:
          PHP-Code:
          $tmpVar $resultArray['templateVar'];
          $template->assign($tmpVar$tmpVar ); // Version 1
          //$template->assign('activateToolTips', $content ); 
          ich habe jetzt das Problem, dass das Zuweisen der Templatevariable mit der Version 1 nicht funktionert.
          Mit Version 2 funktionert es jedoch.
          In $tmpVar steht activateToolTips drin.

          Woran kann es liegen, ich sitze gerade voll auf der Leitung!!

          Vielen Dank

          Marcus

          Kommentar


          • #6
            nicht funktionert.
            definiere das mal!!!

            Kommentar


            • #7
              PHP-Code:
              $tmpVar $resultArray['templateVar']; 
              Nehmen wir spaßeshalber an, $tmpVar ist jetzt 'activateToolTips' ...
              PHP-Code:
              $template->assign($tmpVar$tmpVar ); // Version 1 
              Huh, wir weisen Smarty an, den Platzhalter namens activateToolTips durch den String activateToolTips zu ersetzen. Wir fragen uns, ob das
              a) das ist, was wir wollen und
              b) überhaupt Sinn macht, hierfür eine TemplateEngine zu mißbrauchen.
              PHP-Code:
              $template->assign('activateToolTips'$content ); 
              Wir stellen erschrocken fest, dass diese Zeile ganz was anderes macht, als Version 1 und schämen uns!

              Kommentar


              • #8
                Morgen,

                @Tobiaz
                Smarty weißt der TemplateVariablen nichts zu. sorry für die ungenaue Beschreibung.

                @onmoreenerd
                ich kann dir nicht ganz folgen, warum missbrauche ich die TemplateEngine?
                Was ich damit erreich will ist folgendes.
                Der Administrator kann im Adminbereich Tooltips verändern. Dazu bekommt er eine Auflistung mit allen vorhanden Tooltips auf der Seite und kann dann den entsprechenden verändern. Die Tabelle in der DB hat folgende Struktur:
                id | templateVar | active | tooltipCaption | tooltipText

                So jetzt geht der User auf die Seite. In der *.php Datei werden nun alle Tooltips aus der Tabelle ausgelesen und versucht zuzuweisen, nachdem im Template aber nicht alle TemplateVars vorhanden sind, weißt er nur die zu zu denen er im Template auch eine Variable gefunden hat!
                Wieso missbrauche ich also die TemplateEngine?
                Ich habe nur Probleme den Platzhalter richtig zuverwenden.

                Marcus

                Kommentar


                • #9
                  Original geschrieben von Toast
                  ich kann dir nicht ganz folgen, warum missbrauche ich die TemplateEngine?
                  Weil du mit $template->assign($tmpVar, $tmpVar) einen Platzhalter durch den Namen des Platzhalters ersetzt, zum Beispeil wird so aus <h1>{activeToolTips}</h1> nur <h1>activeToolTips</h1> und das ist quasi statisches HTML, dazu brauchst du Smarty nicht.

                  Ich habe nur Probleme den Platzhalter richtig zuverwenden.
                  Dagegen hilft http://smarty.php.net/manual !

                  Kommentar


                  • #10
                    quote:
                    --------------------------------------------------------------------------------
                    Original geschrieben von Toast
                    ich kann dir nicht ganz folgen, warum missbrauche ich die TemplateEngine?
                    --------------------------------------------------------------------------------

                    Weil du mit $template->assign($tmpVar, $tmpVar) einen Platzhalter durch den Namen des Platzhalters ersetzt, zum Beispeil wird so aus <h1>{activeToolTips}</h1> nur <h1>activeToolTips</h1> und das ist quasi statisches HTML, dazu brauchst du Smarty nicht.
                    OK das verstehe ich aber wie würdest du das lösen? Ich kenne den namen des Platzhalters ja jetzt noch nicht, den bekomme ich ja erst aus der Datenbank.
                    Genau genommen kenne ich den namen des Platzhalters jetzt auch schon aber dann müsste ich, wenn auf einer Seite z.B. 10 Tooltips angezeigt werden, 10 mal den gleichen Code schreiben und das will ich mir eben durch die Schleife, die ich programmiert habe, ersparen.

                    Kannst mir mal ein Stichwort nennen? Ich wüsste jetzt auf anhieb nicht wo ich manual suchen soll.

                    Danke für deine Hilfe

                    Kommentar


                    • #11
                      Du holst x Tooltips aus deiner DB.
                      Du hast x-z verschiedene Platzhalter im Template.
                      Jeder Tooltip kennt seinen Platzhalter (templateVar).

                      PHP-Code:
                      while ($Tooltip mysql_fetch_assoc(...)) {
                          
                      $template->assign($Tooltip['templateVar'], $Tooltip['tooltipText'])

                      Seelig sind die Blinden ...

                      Kommentar


                      • #12
                        Danke dir, da war ich wohl wirklich blind.
                        Finde trotzdem das solche Bemerkungen nicht wirklich sein müssen.
                        Man kennt das sicher selber, dass wenn man ständig auf den Code sieht das man solche Sachen leicht übersehen kann.

                        Ich danke dir trotzdem für deine Hilfe.

                        Marcus

                        Kommentar

                        Lädt...
                        X