molily: Liste dynamisch zusammenstellen

Beitrag lesen

Hallo,

Auf der ersten Seite, die die das JS enthält, soll die möglichkeit bestehen 5 User nebst Userkennung einzugeben (maximal 5 User). Diese sollen auf der gleichen Seite in einer Tabelle nach jeder Eingabe eines neuen User aufgelistet werden - summiert sozusagen - daher das Array das ich dann ausgeben lassen wollte.

Du weißt doch mittlerweile, wie du Inhalte in das bestehende Dokument einfügst, indem du neue Elemente erzeugst und in den Elementbaum einhängst. Dasselbe wie bei den input-Elementen machst du mit tr- und td-Elementen sowie Textknoten (createTextNode()) (zwei Textknoten jeweils mit dem Namen bzw. der Nummer erzeugen, zwei td-Elemente erzeugen und die Textknoten daranhängen, ein tr-Element erzeugen und beide td-Elemente daran anhängen, dann das tr-Element an das tbody-Element anhängen).

Einfacher kannst du den HTML-Code über innerHTML in das tbody-Element schreiben, also etwa:

document.getElementById('tbody').innerHTML += "<tr><td>" + userNumber + "</td><td>" + userName + "</td></tr>";

Bei folgendem HTML-Code (vereinfacht):

<table>
<thead>
<tr><th>User-ID</th><th>Username (Name, Vorname)</th><tr>
</thead>
<tbody id="tbody">
<!-- Hier kommen die Tabellenzeilen hinein. -->
</tbody>
</table>

Wozu du da den Array brauchst, verstehe ich immer noch nicht.

Hinzufügen geschieht über den gleichnamigen Button - allerdings erst einmal nur in der Liste. ein weitere Button - bestätigen - soll die Werte der 1 bis max 5 aufgelisteten User an ein PHP Skript zur Auswertung weitergeben.

Diese Funktionalität hast du ja schon.

Wenn ich es richtig gesehen habe, hängt Dein Beispiel die Userkennung und Namen an den Link.

Weil dort method="post" nicht gesetzt war. Um den Teil ging es im Beispiel ja auch gar nicht.

<tr></tr>
     <form id="form1" name="userForm" action="<?php $PHP_SELF ?>" method="POST">

Du kannst immer noch keine form-Elemente direkt unterhalb von table unterbringen.

<?php

if($pnummer)
        {
         $smbUsersClass->addNewSmbUser($pnummer, $name);

Ich habe doch schon gesagt, dass $_POST['pnummer'] ein Array mit den fünf Benutzerkennungen ist (genauso pname), wenn die Formularfelder pnummer[] und pname[] heißen. Du musst diese Arrays durchlaufen, z.B. mit einer for-Schleife, und für jeden Eintrag einen Benutzer anlegen.

Mathias