Archiv verlassen und diese Seite im Standarddesign anzeigen : POST Frage
Hi,
habe wiedermal ein kleines Problem. Und zwar lese ich sehr viele Werte aus einer DAtenbank ein. Beispielsweise Vorname, Nachname,PLZ,Ort.
Die Ansicht sieht dabei so aus:
aaa bbb ccc ddd
eee fff ggg hhh
etc.
Diese Werte kann ich nun ändern.
Wenn ich nun mittels POST die Werte zur Auswertung weiterleite, erhalte ich immer nur den letzten Datensatz. Ich möchte aber alle angezeigten Wert, egal ob geändert in die DB einfügen.
Wie funktioniert das... oder geht es vielleicht gar nicht???
oafish
Claudine
03-06-2004, 16:15
Original geschrieben von oafish
Wie funktioniert das... oder geht es vielleicht gar nicht???
Gehen tut immer alles.
Poste mal die Scripts, dann sehen wir weiter.
Gudden Morschen,
also so sieht mein Code aus. Wird in einer Schleife ca. 20-30x durchlaufen:
echo "<td width=\"2\"><input name=\"name\" type=\"text\" size=\"2\" value=\"".$row[0]."\"></td>\n";
echo "<td width=\"40%\"><input name=\"vorname\" type=\"text\" size=\"38%\" value=\"".$row[1]."\"></td>\n";
Eine Beispielsausgabe:
Name: Vorname:
Müller Peter
Schmidt Klaus
Kuhn Gustav
Wenn ich nun die 3 Werte auf dem Bildschirm habe und diese mittels post übergebe, erscheint immer nur der letzte Wert(Kuhn Gustav)! Es sieht so aus, als ob alle vorherigen Werte, bis auf den Letzten, vergessen wurden.
Die Auswertung mache ich folgendermaßen:
while (list($key,$val)=each($HTTP_POST_VARS))
echo "$key : $val
vielleicht sieht jemand einen Fehler. Danke
oafish
mehlvogel
04-06-2004, 07:33
Ich vermute mal das deine Inputfelder alle gleich heißen, was natürlich nicht klappen kann, weil die Werte dann immer überschrieben werden und der letzte Wert dann dadrin steht.
Lösung: Entweder deklarierst du das input Feld als Array oder du gibst jedem Feld einen Unterschiedlichen Namen. Wobei ersteres SEHR viel einfacher, schöner und besser zu erweitern, und zu warten.
Danke für die antworten. Mittels get kann ich sehen das tatsächlich alles übertragen wurde. Aber get kann ich nicht verwenden da es max. 2000Zeichen übertragen kann.
Sobald ich die Strasse, Ort und PLZ mit übergeben möchte, funktionierts nicht mehr. Es wird lediglich der key und das allerletzte Element angezeigt. So hab ich es getestet:
foreach ($HTTP_POST_VARS as $key=>$val)
echo "$key: $val","<br>";
Ich habe jetzt jedem Datensatz einen eindeutigen Namen gegeben. Bringt aber auch nichts.
Vielleicht kann mir jemand mit einem kleinen Beispiel weiterhelfen.
Danke bereits im voraus.
oafish
Ach ich superheld. Es hat die ganze Zeit funktioniert! Musst nur beim Browser die Seite aktualisieren.
Was mich noch wundert, ich verwende eine Checkbox. Diese wird nicht mittels post weitergeleitet. Verändere ich den Wert, wird dieser mittels Post übertragen. Weshalb ist das denn so?
oafish
Hi,
also hier mein kleiner Codeschnippel
echo "<td width=\"1\"><input type=\"checkbox\" name=\"".$i."\" value=\"".$row[4]."\" checked></td>";
Der gleiche schnippel existiert noch für eine nicht geklickte checkbox. Der Wert der Checkbox wird nichteinmal mittels Get weitergeleitet. Erst wenn ich die Checkbox angeklickt habe funktionierts wie gewünscht.
oafish
Original geschrieben von oafish
...Erst wenn ich die Checkbox angeklickt habe funktionierts wie gewünscht.
Das ist AFAIK normal!
Um nochmal weiter oben einzusteigen:
while (list($key,$val)=each($HTTP_POST_VARS))
echo "$key : $val
verwende für solche Fälle stattdessen:
foreach($HTTP_POST_VARS as $key=>$val)
echo "$key : $val
Ist schöner ;)
Guten Morgen,
also so normal empfinde ich das mit den Checkboxen nicht! Zumal ich den Stand der Checkbox mit auswerten muss. Gibt es denn gar keine Möglichkeit irgendwie über einen Trick ran zu kommen? Meine nur, weil es wird alles in einem Array gespeichert und ich muss dieses auseinander pflücken. Wenn ich dies tue, weiß ich nie ob der Wert zur Checkbox gehört oder bereits der nächste Wert in der Spalte ist.
oafish
Eigentlich bin ich fertig. Nur das Problem mit den Checkboxen bleibt noch...
oafish
Poste mal bitte deinen Code und den HTML Output, mit dem Formular.
Morgen,
es ist immer dasselbe, egal ob Radiobutton oder Checkbox. Werden diese nicht angeklickt, werden diese von post nicht übernommen!
So sieht meine checkbox aus:
echo "<td width=\"1\"><input type=\"checkbox\" name=\"".$i."\" value=\"".$row[4]."\" checked></td>";
Das gleiche gibt es auch für nicht gechecked. Merkwürdigerweise überträgt GET es korrekt! Wie kann den sowas vorkommen... stimmt vielleicht was mit meiner PHP-Konfiguration nicht?
oafish
mehlvogel
06-06-2004, 11:40
Wenn eine checkbox / radiobutton nicht angeklickt ist, wird sie auch nicht übertragen. Das ist ganz normal.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.