WinFuture-Forum.de: HTML forms mit PHP POST - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

HTML forms mit PHP POST alle funktionieren bis auf eins


#1 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.627
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 18. Februar 2014 - 15:04

Hi,

ich bin aktuell dabei ein etwa 20 Jahre altes Webinterface zu erweitern. Dabei musste ich in einem Formular ein neues Eingabefeld einfuegen, welches jetzt aber unerwarteterweise nicht so funktioniert wie die anderen.

Das Formular sieht nun so aus (gekuerzt):
<form action="form.php?<?php echo SID; ?>" method="post">
<?php
echo "<div id=\"inputheader-title\">";
printf('<input type="text" name="%s%s[position_neu]" size="3" maxlength="2" value="%s">', $prefix, $i, $i);
echo "</div>";
echo "<div id=\inputsection\">";
printf('<input type="text" name="%s%s[v_titel]" size="50" maxlength="256" value="%s">', $prefix, $i, $values['v_titel']);
echo "</div>";
?>
<input class="button" type="image" src="<?php echo $HTML_IMG; ?>/send.png">
</form>



Das obere Eingabefeld wurde neu eingefuegt.

Die default-Werte sind beispielsweise:
["old1"] => array(2) {
  ["position_neu"] => string(1) "1"
  ["v_titel"] => string(13) "Beispieltitel"
}



Wenn ich jetzt die Werte im Formular aendere sendet der Browser beispielweise die folgenden POST-Daten:
["old1"] => array(2) {
  ["position_neu"] => string(2) "13"
  ["v_titel"] => string(8) "Beispiel"
}



Wenn ich mir dann aber vom PHP die dort angekommenen POST-Daten ausgeben lasse kommen die folgenden Daten an:
["old1"] => array(2) {
  ["position_neu"] => string(1) "1",
  ["v_titel"] => string(8) "Beispiel"
}



Nun habe ich bei Stackoverflow bereits den Tip bekommen mein Eingabefeld mit
name="%s%s[position_neu][]"

zu definieren. In dem Fall bekomme ich vom PHP folgende POST-Daten:
["old1"] => array(2) {
  ["position_neu"] => array(3) {
    ["string(2)"] => "13",
    ["string(1)"] "0",
    ["string(1)"] "0"
  }
  ["v_titel"] => string(8) "Beispiel"
}



Da kann ich zwar die eingegebene 13 sehen, aber das ist nicht das gewuenschte Ergebnis. Ich haette die Daten gerne genau so, wie sie vom Browser kommen. Aber ich kann mir einfach nicht erklaeren, warum zwei fast gleiche Eingabefelder so voellig unterschiedlich interpretiert werden.

Ideen?

Gruss,
skaven

Dieser Beitrag wurde von sкavєи bearbeitet: 18. Februar 2014 - 15:05

Eingefügtes Bild
Eingefügtes Bild
0

Anzeige



#2 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.221
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 18. Februar 2014 - 15:29

Könnte es sein, dass es an dem fehlenden Gänsefüßchen in der Zeile


echo "<div id=\inputsection\">";




liegt?

Dass da irgendwie alle folgenden dann verrutschen und die zuordnungen von id und name usw. nicht mehr passen?


Neee - egal das geht ja tiefer.

Dieser Beitrag wurde von Holger_N bearbeitet: 18. Februar 2014 - 15:44

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#3 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.627
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 20. Februar 2014 - 18:09

Letztenendes lag es tatsächlich an einem dummen Fehler. Das Eingabefeld war versehentlich doppelt definiert. Dadurch wurde zuletzt immer wieder der Default-Wert eingetragen. <_<
Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0