Ankündigung

Einklappen
Keine Ankündigung bisher.

Adressen ausgeben

Einklappen

Neue Werbung 2019

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

  • Adressen ausgeben

    Hallo,
    ich bin dabei ein Adressbuch zu schreiben.
    Standartmäßig sollte es natürlich möglich sein sich die Adressen ausgeben zu lassen. Aber genau hier liegt mein Problem.
    Die Ausgabe an sich ist kein Problem wenn alle Adressfelder ausgefüllt wurden. Wenn aber ein Adressfeld nicht ausgefüllt wurde, würde bei der Ausgabe eine Freiraum zwischen den Feldern angezeigt werden.
    Um also die leeren Felder heraus zu filtern habe ich die Funktion array_filter verwendet, was auch super funktioniert.

    Hier der Quellcode:
    PHP-Code:
    if($address_kategorie_id <> NULL) {
      
    $sel_address_data mysql_query("SELECT 
                                         admin_addressbook_id, anrede,
                                         vorname, nachname, plz, stadt, strasse, hausnummer, 
                                         tel_vorwahl, tel_nummer, mobil_vorwahl, mobil_nummer, 
                                         fax_vorwahl, fax_nummer, geb_datum, email, website
                                       FROM
                                         
    $db_t_admin_addressbook
                                       WHERE
                                         addressbook_kategorie_id = 
    $address_kategorie_id
                                         ORDER BY
                                                                         nachname"
    );
      while(
    $row_address_data mysql_fetch_array($sel_address_data)) {
        
    $address_data = array('anrede' => $row_address_data['anrede'],
                              
    'vorname' => $row_address_data['vorname'],
                              
    'nachname' => $row_address_data['nachname'],
                              
    'strasse' => $row_address_data['strasse'],
                              
    'hausnummer' => $row_address_data['hausnummer'],
                              
    'plz' => $row_address_data['plz'],
                              
    'stadt' => $row_address_data['stadt'],
                              
    'tel_vorwahl' => $row_address_data['tel_vorwahl'],
                              
    'tel_nummer' => $row_address_data['tel_nummer'],
                              
    'mobil_vorwahl' => $row_address_data['mobil_vorwahl'],
                              
    'mobil_nummer' => $row_address_data['mobil_nummer'],
                              
    'fax_vorwahl' => $row_address_data['fax_vorwahl'],
                              
    'fax_nummer' => $row_address_data['fax_nummer'],
                              
    'geb_datum' => $row_address_data['geb_datum'],
                              
    'email' => $row_address_data['email'],
                              
    'website' => $row_address_data['website']);
      }
      
    $address_data array_filter($address_data);

      
    $address_data_anzahl count($address_data);

      
    $smarty->assign('address_data'$address_data);
      
    $smarty->assign('address_data_anzahl'$address_data_anzahl);
      
    $content $smarty->fetch("admin/address_show.tpl");

    Das Problem liegt jetzt bei der Ausgabe.
    Hat der User alle Daten angegeben wird alles angezeigt. Wurde aber z.B. nur die Hälfte angegeben, steht auch nur die Hälfte der Daten zur Verfügung.
    Die Sache ist jetzt die das ich diese Freiräume zwischen den Daten vermeiden will. Wie kann ich das also machen das die Daten auf jeden Fall immer in einem Block angezeigt werden.

    Hier noch ein kurzes Beispiel:
    Code:
    Volständige Daten:
    Max Musterman
    Musterstr. 1
    12345 Musterstadt
    01234 / 56789
    max@musterman.de
    http://www.musterman.de
    
    -----------------------------------------------
    
    Unvollständige Daten:
    Max Musterman
    
    12345 Musterstadt
    
    max@musterman.de
    http://www.musterman.de
    Ich hoffe man kann verstehen was ich meine.
    Um das oben beschriebene auszugeben benutze ich Smarty.

  • #2
    Bei fehlenden Daten einfach als Standard-Wert nen leeren String oder (falls notwendig) einfach einen Zeilenumbruch.

    Kommentar


    • #3
      Hmmm...vielleicht wäre das Smarty-Template ganz hilfreich für eine sinnvolle Antwort!

      Kommentar


      • #4
        Zitat von KingCrunch
        Bei fehlenden Daten einfach als Standard-Wert nen leeren String oder (falls notwendig) einfach einen Zeilenumbruch.
        ich hätte es aber gerne so das bei fehlenden daten überhaupt keine spalte angezeigt wird. ein leerer string oder ein zeilenumbruch wäre ja kein problem.

        hier das momentane template:
        Code:
        {foreach from=$address_data item=address_data}
          {$address_data.anrede}
          {$address_data.vorname}
          {$address_data.nachname}
        {/foreach}
        so sieht es grundsätzlich aus.
        momentan nutze ich das aber nur zu testzwecken.
        das entgültige template hab ich aber noch nicht fertig.

        ich habe schon nach plugins für smarty gesucht die es möglich machen das einfach nur das array durchlaufen wird und dabei ausgegeben wird.
        habe aber noch keine möglichkeit gefunden.

        Kommentar


        • #5
          Frage halt im Template ab, ob die Variable leer ist, und geb dann das entsprechende aus.

          http://smarty.php.net/manual/de/lang...unction.if.php

          Kommentar


          • #6
            ja klar, danke für den tipp.
            das ich da nicht selber drauf gekommen bin ärgert mich jetzt gerade ziemlich...
            aber naja. manchmal hat man in seiner denkeinheit auch mal ne blockade

            Kommentar

            Lädt...
            X