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