Erfassen tabellarischer Eingaben

Manchmal muss man eine ganze Reihe gleichartiger Eingabewerten erfasst werden. Der Anwender kann also die Daten für mehrere Modelinstanzen auf einmal eingeben und absenden. Dies nennt man tabellarische Eingabe, weil die Eingabefelder in diesem Fall oft in einer Tabelle dargestellt werden.

Für solche tabellarische Eingaben muss zunächst ein Array mit Modelobjekten erstellt bzw. befüllt werden, je nachdem ob die Daten eingefügt oder aktualisiert werden sollen. Die gesendeten Formulardaten werden dann nacheinander aus $_POST gelesen und in den jeweiligen Modelinstanzen zugewiesen. Im Gegensatz zum vorher beschriebenen Verfahren bei einem einzelnen Model werden die Daten hier jeweils aus $_POST['ModelClass'][$i] statt $_POST['ModelClass'] gelesen.



Ist die Action entsprechend erstellt, müssen im View batchUpdate die Eingabefelder in einer HTML-Tabelle angezeigt werden.



Beachten Sie, dass beim Aufruf von CHtml::activeTextField "[$i]name" statt "name" verwendet wird.

Genau wie beim View für einfache Models werden auch hier die fehlerhaften Eingabefelder automatisch hervorgehoben.

$Id: form.table.txt 2783 2010-12-28 16:20:41Z qiang.xue $