Loop Template

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

  • Loop Template

    Hallo!

    Ich möchte eine Tabelle in HTML mit Hilfe von PHP-Script bauen.
    das funktionniert eigentlich ganz gut bis auf den Index (i).

    PHP-Code:
    while ($r $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {

    $i=1;
          
    array_push($table_data, array(
             
    'index' => '.$i.',     
             
    'name' => $r['username'],
             
    'points' => $r['points']
             )
          );
          
    $i++;

    HTML Code sieht so aus:

    <tmpl_loop name='table_data'>

    <tr>
    <td valign="top" class="wetteTab1"><strong>{tmpl_var name='index'}</strong></td>
    <td valign="top" class="wetteTab1"><strong>{tmpl_var name='name'}</strong></td>
    <td valign="top" align="center" class="wetteTab1"><strong>{tmpl_var name='points'}</strong></td>
    <td valign="top" class="wetteTab1"><span class="knopfTipps"><a href="rangliste_detail.html">detail</a></span></td>
    </tr>
    </tmpl_loop>


    Wie kann man im HTML Code auf diese Index zugreifen?

  • #2
    PHP-Code:
    $i=1
    nicht in der While Schleife
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      Original geschrieben von Wyveres
      PHP-Code:
      $i=1
      nicht in der While Schleife
      trotzdem gehts nicht..auf der Seite steht dann {tmpl_var name='index'} statt die entsprechende Zahl!

      Kommentar


      • #4
        PHP-Code:
        'index' => '.$i.'
        Die Singlequotes sorgen dafür, dass du den String $i speicherst, nicht die Variable $i. Es findet also keine Interpolation statt (Ersetzung der Variablen durch ihren Wert). Richtig wäre also
        PHP-Code:
        'index' => $i
        oder wenn die Punkte von Wichtigkeit sein sollten
        PHP-Code:
        'index' => '.' $i '.'// oder
        'index' => ".$i."// oder
        'index' => ".{$i}."
        Mehr dazu: PHP Manual - String Parsing

        Grüße
        Zuletzt geändert von Griecherus; 13.05.2008, 12:38.
        Nieder mit der Camel Case-Konvention

        Kommentar


        • #5
          Original geschrieben von Griecherus
          PHP-Code:
          'index' => '.$i.'
          Die Singlequotes sorgen dafür, dass du den String $i speicherst, nicht die Variable $i. Es findet also keine Interpolation statt (Ersetzung der Variablen durch ihren Wert). Richtig wäre also
          PHP-Code:
          'index' => $i
          oder wenn die Punkte von Wichtigkeit sein sollten
          PHP-Code:
          'index' => '.' $i '.'// oder
          'index' => ".$i."// oder
          'index' => ".{$i}."
          Mehr dazu: PHP Manual - String Parsing

          Grüße
          Danke!aber er zeigt mir immernoch {tmpl_var name='index'} auf der Seite.findet irgendwie den index nicht...

          Kommentar


          • #6
            Dazu musst uns schon den Code zeigen, der die Template-Platzhalter parst. Bisher habe ich nur gesehen, wie du Daten aus einer Datenbank abrufst und ablegst, aber noch nicht, wo du dir im HTML Template die Platzhalter herauspickst und gegen ihren Wert ersetzt.

            Grüße
            Nieder mit der Camel Case-Konvention

            Kommentar


            • #7
              Original geschrieben von Griecherus
              Dazu musst uns schon den Code zeigen, der die Template-Platzhalter parst. Bisher habe ich nur gesehen, wie du Daten aus einer Datenbank abrufst und ablegst, aber noch nicht, wo du dir im HTML Template die Platzhalter herauspickst und gegen ihren Wert ersetzt.

              Grüße
              doch hier:

              <tmpl_loop name='table_data'>

              <tr>
              <td valign="top" class="wetteTab1"><strong>{tmpl_var name='index'}</strong></td>
              <td valign="top" class="wetteTab1"><strong>{tmpl_var name='name'}</strong></td>
              <td valign="top" align="center" class="wetteTab1"><strong>{tmpl_var name='points'}</strong></td>

              </tr>
              </tmpl_loop>

              Kommentar


              • #8
                Nein, du definierst nur Platzhalter im HTML Code. Es findet nirgends eine Ersetzung statt. Du denkst doch nicht, dass PHP deine HTML Dateien durchgeht und deine Platzhalter aus Spaß an der Freude ersetzt? Du musst dir schon einen Mechanismus bauen, der ein HTML Template einliest, die Platzhalter sucht und sie anhand ihres Namens durch einen Wert ersetzt. Das nennt sich Template Parsing. Du kannst also entweder irgendeine Template-Klasse benutzen, die deinen Ansprüchen am meisten entspricht, oder dir selbst eine schreiben.

                Grüße
                Nieder mit der Camel Case-Konvention

                Kommentar


                • #9
                  ja aber 'username' und 'Points' wurden schon richtig angezeigt.also die Tabelle ist praktisch schon fast fertig,nur halt die Positionen 1 bis n fehlen.
                  Ich hab schon im PHP Script ein include bzw. Template definiert:

                  include_once('/html/tabelle/vlib/vlibTemplate.php');
                  $tmpl = new vlibTemplate('/html/tabelle/tpl/liste.html');

                  Kommentar


                  • #10
                    Gut, du benutzt also die vlib-Template Engine. Zeig mal deinen aktuellen Code.

                    Grüße
                    Nieder mit der Camel Case-Konvention

                    Kommentar


                    • #11
                      Original geschrieben von Griecherus
                      Gut, du benutzt also die vlib-Template Engine. Zeig mal deinen aktuellen Code.

                      Grüße
                      meinst du vlibTemplate.php?

                      Kommentar


                      • #12
                        Nein, den Code, den du zu Beginn gepostet hast in seiner aktuellen Version.
                        Nieder mit der Camel Case-Konvention

                        Kommentar


                        • #13
                          Sorry,jetzt hats geklappt...hatte nen Fehler im PHP Script
                          Zuletzt geändert von barca; 13.05.2008, 13:41.

                          Kommentar

                          Lädt...
                          X