Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Tabelle dynamisch aus Array erzeugen

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.07.2007
    Beiträge
    23

    Tabelle dynamisch aus Array erzeugen

    Moin zusammen :]

    Ich habe 2 Pages, die eine ist die eingabemaske in der dynamisch (durch js realisiert) neue form-textfelder hinzugefügt werden. Die 2. Page soll aus den Übergebenen Werten ne Tabelle bauen.

    Ich bin soweit das ich die forms in ein array speicher, nun will ich sie nacheinander speichern, mit meiner foreach-lösung geht das natürlich nicht, ich zeig euch mal den code:


    Code:
    [...]
    <table width="1000" border="1">
      <tr>
        <td width="756"><div align="center"><strong>Thema</strong></div></td>
        <td width="45"><div align="center"><strong>Aktion</strong></div></td>
        <td width="82"><div align="center"><strong>Bearbeitung</strong></div></td>
        <td width="89"><div align="center"><strong>Termin</strong></div></td>
      </tr>
      <tr>
        <td>Fr&uuml;h/Sp&auml;tdienst kommende Woche</td>
        <td><div align="center">A</div></td>
        <td><div align="center">Alle</div></td>
        <td><div align="center">Heute</div></td>
      </tr>
      <tr>
    EOT;
    foreach ($_POST['thema'] as $k) {
            print "<td>$k</td>";
    }
    foreach ($_POST['aktion'] as $a) {
            print "<td>$a</td>";
    }
    foreach ($_POST['bearbeitung'] as $b) {
            print "<td>$b</td>";
    }
    foreach ($_POST['termin'] as $t) {
            print "<td>$t</td></tr>";
    }
    
    echo "</table>";
    wie kann ich es realisieren das jedes array element nur einmal in die tabelle geschrieben wird, und zwar so:

    Code:
    -------------------------------------------------------
    |thema1            |  aktion1   | bearbeitung1 | termin1 |
    -------------------------------------------------------
    |thema2            |  aktion2   | bearbeitung2 | termin2 |
    -------------------------------------------------------
    usw.
    bei meinem code schreibt er irgendwie alles immer wieder in die zeilen, klar bei foreach.. aber hat jemand nen rat dazu?

  2. #2
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Dein Problem ist, dass für diese Aktion Deine Daten nicht optimal organisiert sind. Was Du möchtest ist nicht jedesmal eine einzelne Schleife, sondern eine einzige Schleife (über alle Zeilen). Eine Variante auf die Schnelle wäre von mir:
    PHP-Code:
    foreach ($_POST['thema'] as $key -> $thema)
      
    printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>",
             
    $thema,
             
    $_POST['aktion'][$key],
             
    $_POST['bearbeitung'][$key],
             
    $_POST['termin'][$key]); 
    Homepage: www.pingu.info

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.07.2007
    Beiträge
    23
    hi pingu, danke schonmal für deine hilfe, ich bekomme bei deinem code jedoch diesen fehler:

    Fatal error: Cannot access empty property in /usr/local/apache2/htdocs/post.php on line 74

    line 74 ist halt der start deines codes:

    Code:
    foreach ($_POST['thema'] as $key -> $thema) {
      printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>",
             $thema,
             $_POST['aktion'][$key],
             $_POST['bearbeitung'][$key],
             $_POST['termin'][$key]); 
    }

  4. #4
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Ich habe geschrieben "auf die Schnelle". Ich bin nicht fehlerfrei. Wobei einen solchen Fehler auch Du erkennen müsstest. Denn es muss richtig lauten:
    PHP-Code:
    foreach ($_POST['thema'] as $key => $thema)
      
    printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>",
             
    $thema,
             
    $_POST['aktion'][$key],
             
    $_POST['bearbeitung'][$key],
             
    $_POST['termin'][$key]); 
    Homepage: www.pingu.info

  5. #5
    Registrierter Benutzer
    Registriert seit
    03.07.2007
    Beiträge
    23
    Danke nochmal, wollte dich aber keinesfalls irgendwie angreifen deswegen

    aber leider hast du unrecht... ich bin noch ganz am anfang was php angeht, ich habe den fehler zwar jetzt lokalisiert, aber selbständig gelöst hätt ichs wohl nicht :]

    naja... nun läuft es ja... danke nochma!

  6. #6
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Da die Daten von außerhalb kommen, solltest du noch darauf achten, dass es keine Cross-Site-Scripting-Sicherheitslücke gibt, indem du die einzelnen Variablen z.B. per htmlentities() escapest:
    Zitat Zitat von Pingu Beitrag anzeigen
    PHP-Code:
    foreach ($_POST['thema'] as $key => $thema)
      
    printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>",
             
    htmlentities($thema),
             
    htmlentities($_POST['aktion'][$key]),
             
    htmlentities($_POST['bearbeitung'][$key]),
             
    htmlentities($_POST['termin'][$key])); 

Lesezeichen

Berechtigungen

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