Kalle_Worms: ALTERNATIVE LOESUNG

Beitrag lesen

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