Hi, Tom,
habe über deiner Lösung gebrütet und im Gefühl gehabt, dass es einfacher gehen muss. Und ich habe es gefunden. Für jedes Feld kann man in der <form> mit einem kleinen Trick doch beliebig viele Werte übergeben. Für jeden zusätzlichen Wert baut man einfach ein <input type='hiddden' ..> dazu:
echo "<input type='hidden' name='fld[]' value='".$row['mrk_id']."-".$row['art_id']."'>";
echo "<input type='hidden' name='vla[]' value='".$row['masz']."'>"; // value alt
echo "<input type='text' name='vln[]' maxlength=50 size=5 value='".$row['masz']."'>"; // value neu
Nun habe ich ein Array fld[] mit den Feldnamen, ein Array vla[] mit den alten values und ein Array vln[] mit den eventuell neuen values.
Die Auswertung ist simpel:
echo "<pre>";
for ( $i=0; $i<count($_POST['fld']); $i++ ) {
if ( $_POST['vla'][$i] !== $_POST['vln'][$i] ) echo "* "; else echo " ";
echo $i.": ".$_POST['fld'][$i]." / ".$_POST['vla'][$i]." / ".$_POST['vln'][$i]."\n";
}
echo "</pre>";
Was hälst du davon ? Immer da, wo der alte und neue Wert differiert und bei obiger Anzeige ein * erscheint, muss ich die Datenbank ändern.
Dein Vorschlag, die alten Daten in Session- Variablen zu speichern, brachte mich drauf. Also danke nochmal.
LG, Kalle