Rouven: <table>+<form> valide?

Hallo,

ich hab mir gerade gedacht, ich könnte eigentlich meine Seiten mal in valides HTML verwandeln. Nun habe ich ein Problem. Ich habe eine Administrationsmaske auf der eine Menge an Dateien angezeigt wird. Zu jeder dieser Zeilen gehört ein Bearbeiten und ein Löschen-Button.
Also:
<table>
<tr><td>...</td>...<td><form ...><input type="button" ...>...</td></tr>
<tr><td>...</td>...<td><form ...><input type="button" ...>...</td></tr>
<tr><td>...</td>...<td><form ...><input type="button" ...>...</td></tr>

OK, soweit so gut, JavaScript darf ruhig vorausgesetzt werden, also ist das mit einem Button und den onclick-Event ok. Nun möchte ich in der Tabelle als letzte Zeile ein Eingabeformular für neue Dateien unterbringen. Dazu gibt es so etwas wie
<tr>
 <td>Name: <input type="text"...>...</td>
 <td>Beschreibung: <input type="text"...>...</td>
 ...
 <td><input type="submit"></td>
</tr>
--> So, und jetzt? Wo bring ich das Formular-Tag für diesen Vorgang unter? Ich kann es nicht zwischen tr und td setzen, wenn ich es außen um die Tabelle rumsetze, habe ich ein Problem mit verschachtelten Formularen, oder? Ich glaube die inneren Form-Tags brauche ich, damit die <input> korrekt sind...
Wohin also mit dem Form-Tag??

MfG
Rouven

--

-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  1. Hallo,

    Wohin also mit dem Form-Tag??

    Gute Frage. ;-)

    Du hast richtig erkannt:
    Ein Formular darf entweder eine ganze Tabelle umfassen,
    <form><table> ... </table></form>
    oder es muss als ganzes innerhalb einer Tabellenzelle stehen:
    ... <td><form> ... </form></td> ...

    Vereinfacht gesagt, darf <table> nur <tr> enthalten,
    und <tr> darf nur <td> enthalten.
    (OK, es gibt noch <thead>, <tbody>, <caption> und <col> ...)

    Ein Konstrukt wie
    <table> ... <form><tr> ... </tr></form> ... </table>
    oder aehnliches waere also nicht valide.

    Wahrscheinlich waere es das einfachste, _ein_ Formular
    rund um die ganze Tabelle zu machen und aufgrund der
    Submit-Buttons im verarbeitenden Skript zu unterscheiden,
    was das Skript tun soll.

    Dabei hilft Dir die dclp-FAQ weiter, auch wenn Du
    nicht mit PHP, sondern mit einer andern Sprache arbeitest:
    "Wie verarbeite ich mehrere Submit-Buttons?"
    http://www.dclp-faq.de/q/q-formular-buttons.html

    Allenfalls koenntest Du auch fuer's letzte Formular
    die Zellen der aeusseren Tabelle verschmelzen
    und eine innere Tabelle darin verschachteln.

    <tr><td colspan="3">

    <form action="...">
    <table>
    <tr>
     <td>Name: <input type="text"...>...</td>
     <td>Beschreibung: <input type="text"...>...</td>
     <td><input type="submit"></td>
    </tr>
    </table>
    </form>

    </td></tr>

    (Spalten-Zahl bei colspan natuerlich anpassen)

    Gruesse,

    Thomas

    1. Hi,

      Wahrscheinlich waere es das einfachste, _ein_ Formular
      rund um die ganze Tabelle zu machen und aufgrund der
      Submit-Buttons im verarbeitenden Skript zu unterscheiden,
      was das Skript tun soll.

      Das könnte ich gerade machen, zumal sich wahrscheinlich <input type="button" und <input type="submit"> eh nicht verhaken, könnte ich die auch gerade durcheinanderwürfeln.

      Allenfalls koenntest Du auch fuer's letzte Formular
      die Zellen der aeusseren Tabelle verschmelzen
      und eine innere Tabelle darin verschachteln.

      Das ist dann die andere Alternative, allerdings könnte es ganz geringfügig am Layout zerren.
      Egal, danke!

      MfG
      Rouven

      --

      -------------------
      ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. Hallo Rouven,

    Nun möchte ich in der Tabelle als letzte Zeile ein Eingabeformular für neue
    Dateien unterbringen.

    Wieso legst Du das nicht als neues Formular an, ohne es in die bereits
    vorhandene Tabelle zu quetschen? Wenn es doch offensichtlich einem
    anderen Zweck dient?

    Tim