$_POST['ID'] wird richtig in hidden-Feld geschrieben aber falsch übergeben!

uafsc

Erfahrenes Mitglied
Ich hab in meiner Übersichtsseite ein Formular, bei dem der Button aus einer Nummerierung bzw. einer Zahl besteht (nicht aus der ID!). Wenn man auf diese Zahl klickt, kommt man auf eine Seite, in der man die Einträge editieren kann. Dass bestimmt ist, dass man auch wirklich den Eintrag bearbeitet, bei dem man die Zahl angeklickt hat, wird in einem hidden-Feld die ItemID mit gesendet. Doch wenn diese im Script, in dem man die Daten editiert, ankommt, ist sie nicht mehr korrekt. Es wird dann immer die ItemID des sich zu oberst befindenden Eintrags angenommen.

Ich habe das hidden-Feld zu einem text-Feld gemacht und da sind die ItemIDs als "values" richtig eingetragen - bei jeden die dazugehörige. Doch sobald die ID auf dem "Formular-Empfänger-Script" eintrifft, ist sie nicht mehr korrekt - auch wenn ich diese bloss mit einem "echo" ausgebe.

Hier das Formular mit dem hidden-Feld, das die ItemID übergeben soll
HTML:
<td class="center">
	<form action="index.php?site=update_item" method="POST" name="edit">
		<input type="hidden" value="<?php echo $row['ItemID']; ?>" name="ItemID" id="ItemID" />
		<script type="text/javascript">
		<!--
		document.writeln("<a href=\"javascript:document.forms.edit.submit();\"><?php echo $nr; ?></a>");
		//-->
		</script>
		<noscript>
			<input type="submit" value="<?php echo $nr; ?>" name="submit" class="formlink" />
		</noscript>
	</form>
</td>

Ich blick da echt nicht mehr durch, das sollte doch so gehen...entweder habe ich bei zehnfacher Kontrolle irgendetwas völlig banales übersehen oder ich müsste da was ändern.. :confused:
 
....Es wird dann immer die ItemID des sich zu oberst befindenden Eintrags angenommen.

Welcher "oberst befindenden Eintrags"?
Hast du evtl. für jede ItemID ein eigenes Formular?
Und wenn ja...besitzen diese Formulare evtl. alle den selben Namen?
Wenn ja, dann wird immer dasselbe Formular gesendet, denn sofern du Javascript an hast, hat JS die Auswahl zwischen mehreren Formlaren, und muss sich halt für eines entscheiden.

Ansonsten: sollte man dies im IE probieren und JS anhaben, funktioniert dort überhaupt nichts: http://www.tutorials.de/forum/webmaster-faq/218365-warum-funktioniert-bei-mir-submit-nicht.html
 
Der Eintrag der aus der Datenbank ausgelesen wird und sich zu oberst befindet. Dies variiert je nach Sortierung nach Titel od. anderen Eigenschaften der Einträge.

Das wird es wohl sein :O ..ich hab ne while-Schleife, die jeden Datensatz in der Datenbank ausgibt und dabei jedes Mal eine neue Zeile in der Tabelle erstellt. In der ersten Spalte der jeweiligen Zeile ist dann jeweils das Formular, das natürlich immer gleich heisst, da es mit der while-Schleife "generiert" wird.

Ich hab nun den Formularnamen von "edit" nach "edit[ItemID]" geändert und es klappt prima :)
HTML:
<form action="index.php?site=update_item" method="POST" name="edit<?php echo $row['ItemID']; ?>">

Danke ;-)
 
Zurück