Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ein form pro Tabellenzeile

Empfohlene Antworten

Veröffentlicht

Salut,

ich generiere eine Tabelle, deren Zeilen immer gleichnamige input-Elemente beinhalten:


+-------------+-------------+----------+

| [textfeld1] | [textfeld2] | [SUBMIT] |

+-------------+-------------+----------+

| [textfeld1] | [textfeld2] | [SUBMIT] |

+-------------+-------------+----------+

|    ...      |     ...     |    ...   |

Beim Klick auf einen Submit-Button sollen die Werte aus dessen Zeile per GET zur Auswertung übergeben werden. Also wollte ich ein Formular pro Zeile bauen...form-Tags sind innerhalb von tables aber nicht erlaubt. Deswegen schreibe ich momentan als Workaround für jede Zeile eine neue Tabelle, die von einem <form> umschlossen wird. Das zerschießt mir durch verschieden breite Inhalte natürlich derb die Optik, aber so richtig will mir auch nichts einfallen, wie ich das optisch und technisch sauber lösen kann.

Steh da grad aufm Schlauch. Hat jemand eine Idee, wie ich gleichzeitig

  • eine einzige Tabelle
  • mit einem Formular pro Zeile

realisieren kann?

Merci..

..azett

Ich schätze mal du meins xhtml strict 1.0? Ich habs bis jetzt einmal gebraucht und zudem Zeitpunkt mit Divs zusammengebastelt. Seite is mitlerweile wieder gelöscht insofern bin ich dem nich mehr Nachgegangen.

...form-Tags sind innerhalb von tables aber nicht erlaubt.

SelfHTML sagt das aber anders:

Darf innerhalb der folgenden HTML-Elemente vorkommen:

applet | blockquote | body | button | center | dd | del | div | fieldset | iframe | ins | li | map | noframes | noscript | object | td | th

EDIT:

Oder meinst du innerhalb eines tr, und die td beinhalten?

  • Autor

Merci für's Nachschauen!

Ich brauche ein Formular pro Tabellenzeile (siehe dein Edit ;) ), also vom Prinzip her so:

<table>

 <tr>

  <form>

   <td>Textfeld1</td>

   <td>Textfeld2</td>

   <td>Button</td>

  </form>

 </tr>

 <tr>

  <form>

   <td>Textfeld1</td>

   <td>Textfeld2</td>

   <td>Button</td>

  </form>

 </tr>

 ...

</table>

Hi,

wenn du das so machen willst und für jede Zeile ein form haben willst, dann musst du jedesmal die Tabelle schließen.

Evtl könntest du ein Form um die ganze Tabelle machen und den Speichervorgang via AJAX durchführen, dann wäre das auch bestimmt schöner für den User zu bedienen...

Ausserdem kann man ja auswerten auf der Serverseite, welcher Submutbutton gedrückt wurde, da nur der name des SubmitButtons übermittelt wird, der auch angeklickt worden ist. Die anderen werden nicht in den _POST bzw _GET Variablen aufgeführt...

Gruß,

Markus

  • Autor
Ausserdem kann man ja auswerten auf der Serverseite, welcher Submutbutton gedrückt wurde, da nur der name des SubmitButtons übermittelt wird, der auch angeklickt worden ist. Die anderen werden nicht in den _POST bzw _GET Variablen aufgeführt...
Das hat geholfen, vielen Dank :)

Mein Code, vereinfacht:

<form>

 <table>

  <tr>

   <td><input type="text" name="datensatz1_wert1"></td>

   <td><input type="text" name="datensatz1_wert2"></td>

   <td><input type="image" name="submit" value="datensatz1" src="foo.gif" /></td>

  </tr>

  <tr>

   <td><input type="text" name="datensatz2_wert1"></td>

   <td><input type="text" name="datensatz2_wert2"></td>

   <td><input type="image" name="submit" value="datensatz2" src="foo.gif" /></td>

  </tr>

  ...

 </table>

</form>

Jetzt kann ich mit $_GET['submit'] herausfinden, um welchen Datensatz es geht...und dann entsprechend mit $_GET[$_GET['submit'].'_wert1'] usw. die Daten der Textfelder auslesen.

Allerdings gebe ich so natürlich die Input-Values aller Zeilen mit...je nach Anzahl der Datensätze ein ganz schöner Rattenschwanz ;)

Ein Problem taucht noch auf, wenn ich etwas in ein Textfeld in einer beliebigen Zeile außer der ersten eintrage und dann Enter drücke. Das Formular wird abgeschickt, als "submit" bekomme ich aber immer "datensatz1", also den Namen des Submit-Inputs der ersten Zeile. Die Auswertung bezieht sich dann natürlich immer auf die erste Zeile. Das ist ärgerlich, aber für mich im schlimmsten Fall noch hinzunehmen. Der aktuelle Stand ist jedenfalls besser als das "Eine-Tabelle-pro-Zeile"-Gefrickel.

Evtl könntest du ein Form um die ganze Tabelle machen und den Speichervorgang via AJAX durchführen
Maximalziel ist eine JS-freie Umsetzung. ;)

Merci für die Ideen, nehme weitere Vorschläge natürlich dankend entgegen :)

..Arvid

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.