Template foreach-Funktion

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by 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

    Comment


    • #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

      Comment


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

        Marcus

        Comment


        • #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

          Comment


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

            Comment


            • #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!

              Comment


              • #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

                Comment


                • #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 !

                  Comment


                  • #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

                    Comment


                    • #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 ...

                      Comment


                      • #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

                        Comment

                        Working...
                        X