Ergebnis 1 bis 15 von 15

Thema: bestimmten Eintrag in einer Datenbanktabelle ansprechen

  1. #1
    Contao-Nutzer Avatar von denise
    Registriert seit
    12.04.2011.
    Ort
    Bülach
    Beiträge
    29
    Partner-ID
    7741

    Frage bestimmten Eintrag in einer Datenbanktabelle ansprechen

    Liebe Leute


    Habe das Template list_fd_table_default auf meine Wünsche angepasst.
    Jetzt fehlt mir noch ein kleiner Schritt bis zum Erfolg.

    Die <td>'s ein jeder Reihe wurden ja ursprünglich durch eine foreach-Iteration erzeugt.
    Da ich nicht jeden dieser Einträge in einer <td> haben will, muss ich diese Iteration aufheben.

    In der Iteration wurde jede Reihe durch folgenden Code dargestellt (natürlich noch mit dem foreach drumherum):
    Code:
    <td class="body <?php echo $col['class']; ?>">
       <?php echo $col['content'] ?>
    </td>

    Ohne foreach funktioniert das nun nicht mehr so, musste ich feststellen :-)
    Die Einträg, die ich anzeigen möchte, stehen in der Datenbank tl_formdata_details jeweils in der Reihe value.
    Diese muss ich doch irgendwie mit dem echo-Befehl ausgeben können, oder nicht?

    Bin sehr dankbar für eure Hilfe. Ich habe schon etliche Foren und HowTos durchforstet, aber immer noch nicht rausgefunden, wo der Hund begraben liegt.


    Vielen Dank und schöne Grüsse,
    Denise

  2. #2
    Contao-Nutzer Avatar von denise
    Registriert seit
    12.04.2011.
    Ort
    Bülach
    Beiträge
    29
    Partner-ID
    7741

    Standard

    sorry, ich meinte natürlich in der Spalte value, nicht in der Reihe.

  3. #3
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo denise,

    lass' Dir mal mit
    PHP-Code:
    <?php  echo '<pre>';  echo $this->showTemplateVars();  echo '</pre>'?>
    die Templatevariablen anzeigen.
    Dann kann man durch ein Konstrukt wie
    PHP-Code:
    <?php foreach ($this->tbody as $class=>$row)
    ...
    echo 
    $row['0']['content'];
    ...
    endforeach 
    ?>
    in der foreach-Schleife die gewünschten Werte ausgeben.

  4. #4
    Contao-Nutzer Avatar von denise
    Registriert seit
    12.04.2011.
    Ort
    Bülach
    Beiträge
    29
    Partner-ID
    7741

    Lachendes Gesicht

    Hallo Karl,


    vielen Dank, das war's!
    Das war genau die Syntax, die mir gefehlt hat und an der ich dauernd gescheitert bin:
    $row['1']['content'];

    Auf den ersten Blick denke ich, wird das jetzt so funktionieren.
    Sonst meld ich mich nochmal ;-)

    Tausend Dank nochmal!


    Viele Grüsse,
    Denise

  5. #5
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Gerne!
    Hauptsache ist, dass es jetzt so geht wie Du willst.

  6. #6
    Contao-Nutzer Avatar von denise
    Registriert seit
    12.04.2011.
    Ort
    Bülach
    Beiträge
    29
    Partner-ID
    7741

    Standard

    Hallo Karl


    Ja, es geht jetzt so wie ich will :-)
    Bis auf eine kleine Sache. Ich habe versucht, das Akkordeon in das Auflistungs-Modul einzubauen. Das funktioniert auch wunderbar.
    Einziger kleiner Fehler: Der Toggler wird mir immer zwei Mal ausgegeben.

    Ich habe folgenden Code eingegeben, welcher dann zwei Mal statt nur einmal das ganze Toggler-div ausgibt:
    Code:
       <?php foreach ($this->tbody as $class=>$row): ?>
       <div class="toggler">            
          <?php echo $row['7']['content']; ?>
       </div>
       <?php endforeach; ?>
    Siehst du da vielleicht auch gleich, woran das liegt?


    Danke nochmal und Gruss,
    Denise

  7. #7
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo denise,

    wenn ich das richtig sehe, baust Du bei diesem Code ja um jede Tabellenzeile ein <div class="togler">, d.h., wenn die Tabelle 20 Zeilen hat ergibt das 20 divs mit jeweils einer Tabellenzeile als Inhalt?
    Ist das so gewollt oder möchtest Du die gesamte Auflistung der Tabelle in einem Accordion?

  8. #8
    Contao-Nutzer Avatar von denise
    Registriert seit
    12.04.2011.
    Ort
    Bülach
    Beiträge
    29
    Partner-ID
    7741

    Standard

    Hallo Karl


    Natürlich, du hast recht... Mann, bin ich doof... :-/
    Somit muss ich nochmal über die Bücher und meinen Plan überdenken...

    Deine Hilfe war auf jeden Fall sehr wertvoll, damit wird's schon mal einfacher gehen.


    Dankeschön und Gruss,
    Denise
    Angehängte Grafiken Angehängte Grafiken

  9. #9
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo denise,

    also wenn Du die gesamte Auflistung in einem Accordion haben willst, dann würde ich folgendes Vorgehen vorschlagen:
    1. Einfügen eines Elementes vom Typ Accordion in Deine Seite und hier Betriebsart auf Umschlag Anfang festlegen
    2. dann Einfügen der Auflistung
    3. Einfügen eines Elementes vom Typ Accordion und hier Betriebsart auf Umschlag Ende festlegen.


    Das müsste eigentlich klappen.

  10. #10
    Contao-Nutzer Avatar von denise
    Registriert seit
    12.04.2011.
    Ort
    Bülach
    Beiträge
    29
    Partner-ID
    7741

    Standard

    Hallo Karl,


    ja, das habe ich mir auch gerade überlegt.
    Kann ich im Auflistungs-Modul nur gewisse Formulardaten anzeigen lassen?
    Ich möchte damit vermeiden, für jeden Sektor (wie "AUFN" im vorhin angehängten Bild) ein eigenes Formular zu machen.
    Also irgendwie zu filtern, dass nur die Einträge gelistet werden, welche z.B. im Feld "Sektor" den Eintrag "AUFN" haben.


    Danke und Gruss,
    Denise

  11. #11
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hier verstehe ich nicht, was Du meinst.

    Du kannst doch für die Ausgabe in der Modul-Konfiguration Bedingungen festlegen.
    Beispiel:
    Wenn Du unter Modul-Konfiguration->Bedingungen->Jahr={{date::Y}} festlegst, dann werden Dir nur die Datensätze des aktuellen Jahres ausgegeben (vorausgesetzt, Jahr ist in der Datenbank vorhanden)

  12. #12
    Contao-Nutzer Avatar von denise
    Registriert seit
    12.04.2011.
    Ort
    Bülach
    Beiträge
    29
    Partner-ID
    7741

    Standard

    Sorry, dass ich schon wieder Frage, aber ich find irgendwie nirgendwo die Info, die ich brauche.
    Bei der Bedingung möchte ich angeben "Nur diejenigen Formulardaten anzeigen, in welchen der User im Formularfeld "Sektor" den Text "AUFN" angegeben hat".
    Wie schreib ich das richtig ein?

    Lieber wäre mir, wenn ich das auch mit PHP direkt im Template filtern könnte. Sonst müsste ich für jeden Sektor ein eigenes Auflistungs-Modul machen. Das ginge zwar zur Not auch, aber ich würde es lieber direkt im Template lösen können. Dann würde ich einfach für jeden Sektor (es gibt nur eine bestimmte Anzahl davon, ca. 20 Stk.) den Toggler von Hand reinschreiben und dann die Formulardaten dementsprechend Filtern. Ich weiss, das ist auch nicht die schönste Lösung. Dafür bleibt aber die Modulliste übersichtlicher.

    Dankeschön und Gruss,
    Denise

  13. #13
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo denise,

    also PHP ist nun nicht gerade mein Ding.
    Aber ich würde das so versuchen:
    PHP-Code:
      <?php foreach ($this->tbody as $class=>$row): 
     if (
    $row['ZZ']['content']=='AUFN'): ?>
        <tr>
          <td class="col_0"><?php echo $row['0']['content']; ?></td>
          <td class="col_1"><?php echo $row['4']['content']; ?></td>
            ..
            ..
        </tr>
    <?php endif; endforeach; ?>
    wobei Du den Wert für 'ZZ' aus der Templatevariablen herauslesen musst, die das Feld "Sektor" ausgibt.

    Solltest Du Dich doch entschließen, das über das Modul zu machen, dann wäre wohl die Bedingung Sektor='AUFN' anzugeben.

  14. #14
    Contao-Nutzer Avatar von denise
    Registriert seit
    12.04.2011.
    Ort
    Bülach
    Beiträge
    29
    Partner-ID
    7741

    Standard

    Guten Morgen Karl


    An diese if-Schlaufe habe ich auch schon gedacht, aber es wird dann gar kein Inhalt mehr aufgelistet.
    Zu Testzwecken habe ich folgendes versucht:
    Code:
    <?php $my_test = "AUFN"; ?>
       <?php foreach ($this->tbody as $class=>$row): if ( $my_test == "AUFN" ): ?>
    So schluckt es die Bedingung. Das find ich komisch....

    denn
    Code:
    <?php echo $row['7']['content']; ?>
    spuckt AUFN aus.

    Code:
    <?php if ($row['07']['content'] == "AUFN" ): ?>
    führt jedoch nicht zum gewünschten Ergebnis.

    Ich stehe da echt auf dem Schlauch. Aber das lass ich jetzt mal so stehen und mache für jeden Sektor ein Modul, denn die Bedingung im Modul funktioniert jetzt wunderbar. Ich hatte dort nur einen ganz blöden Syntax-Fehler drin. Das Feld "Sektor" hatte ich aus irgendeiner Laune heraus nicht "sektor" getauft, sondern "sektor:".... :-)

    Ich danke dir nochmal ganz herzlich für deine Hilfe! Jetzt bin ich endlich auf der Zielgeraden :-)


    Viele Grüsse,
    Denise

  15. #15
    Contao-Fan Avatar von kos
    Registriert seit
    22.06.2009.
    Ort
    Westerwald
    Beiträge
    888

    Standard

    Hallo denise,

    schön, dass Dein Ziel jetzt in Sicht ist.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •