ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
422
422
EMPFEHLEN
-
21.11.11 22:45 #1
- Registriert seit
- Mar 2009
- Beiträge
- 171
Das Formular:
gibt, wenn ich im 1. Feld "aaa" eingebe nachHTML-Code:<form name="vorschlag" method="post" action=""> <textarea name="text_1[]" onchange="document.vorschlag.submit();"></textarea> <textarea name="text_1[]" onchange="document.vorschlag.submit();"></textarea> </form>
folgendes aus:PHP-Code:<?PHP echo "<pre>". print_r($_POST, true) ."</pre>"; ?>
Array
(
[text_1] => Array
(
[0] => aaa
[1] =>
)
)
Ich benötige jetzt nicht nur den Inhalt (aaa), sondern auch den Schlüssel - in dem Fall 0.
Wie komme ich daran?
Also als Beispiel echo $_POST['text_1'][0]; <- diese Null!
Danke.Geändert von Registrierer (21.11.11 um 22:52 Uhr)
-
Das kommt drauf an wie du auf die Werten zugreifen willst.
Wenn du das Formulararray später mit einer Schleife durchgehst, kannst du dir den Index jeweils mit key() zurückgeben lassen.
Wenn du den passenden Index zu einem bekannten Wert haben möchtest, sollte array_search() helfen.Für die Übereinstimmung von Niederschrift und Hirninhalt.
-
21.11.11 23:16 #3
- Registriert seit
- Mar 2009
- Beiträge
- 171
Der Hintergrund ist ein Formular mit erheblich mehr Feldern und natürlich mehr Zeilen, die einer Datenbank entspringen.
Wird im Textfeld etwas verändert und das Feld verlassen, soll die Änderung sofort in der DB übernommen werden.
Dazu brauche ich den Bereichsschlüssel, der den entsprechenden Wert des Feldes bzw. Tabellenzeile repräsentiert.
Also nix Schleife
Geändert von Registrierer (21.11.11 um 23:23 Uhr)
-
Spontan würde mir
einfallen, hat alles was du brauchst, sonnst wüsste ich auch nicht wie man an den Schlüssel rankommt :/PHP-Code:foreach($array as $key => $value){
//...
}
-
Da du nur immer ein Eintrag im Array abgefüllt hast, kannst du den Array einfach ausfiltern. Was übrig bleibt ist dein Wert und der Schlüssel
PHP-Code:$entry = array_filter($_POST['text_1']);
$index = key($entry);
$value = current($entry);
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
22.11.11 14:40 #6
- Registriert seit
- Mar 2009
- Beiträge
- 171
-
22.11.11 19:22 #7
- Registriert seit
- Mar 2009
- Beiträge
- 171
Ein Problem gelöst, neues aufgetaucht.
Folgende Situation:
Wenn das Feld mit der id 100 vorbelegt ist und im Feld mit der id 200 der onchange Effekt ausgelöst wird, ist $index immer 0! anstatt 1.PHP-Code:<?PHP
echo "<pre>". print_r($_POST, true) ."</pre>";
$entry = array_filter($_POST['text_1']);
$index = key($entry);
echo $index;
?>
<form name="vorschlag" method="post" action="">
<textarea name="text_1[]" id="100" onchange="document.vorschlag.submit();">Vorbelegung aus DB</textarea>
<textarea name="text_1[]" id="200" onchange="document.vorschlag.submit();"></textarea>
</form>
Nur wenn beide Textfelder leer sind, bekomme ich als Rückgabe den richtigen Wert und den richtigen Schlüssel.
Was habe ich übersehen?
Vielen Dank.
-
Yaslaw hat es in seinem Post schon erwähnt:
$entry besitzt in diesem Fall $_POST['text_1'][0] & $_POST['text_1'][1], weil keiner der Werte false ist und entsprechend rausgefiltert wurde.Da du nur immer ein Eintrag im Array abgefüllt hast
An der Stelle
ist der Zeiger dann auf dem ersten Element, also Index 0.PHP-Code:$index = key($entry);
Ich schätze, langfristig wirst du um eine Übergabe des Namens im Event nicht herumkommen. Man könnte ein hidden-Input hinzufügen und im onchange-Event der Textfelder mit fillHidden(this.name) den Namen (oder gleich den Index) des geänderten Textfeldes übergeben, in der Funktion dann das value des hidden-Inputs mit dem Namen befüllen und danach erst das Formular absenden.
Zugriff erfolgte dann über $_POST['name_des_hidden_inputs'].
Btw, IDs dürfen meines Wissens nach nicht mit einer Ziffer beginnen.Für die Übereinstimmung von Niederschrift und Hirninhalt.
-
22.11.11 23:35 #9
- Registriert seit
- Mar 2009
- Beiträge
- 171
Ähnliche Themen
-
[SQL] Alles Daten aus eins auslesen/nur Daten mit c an dritter Stelle auslesen
Von sqL-beginner im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 22.03.11, 21:58 -
cmd.exe auslesen
Von Respeckt im Forum Sonstige SprachenAntworten: 7Letzter Beitrag: 06.04.09, 23:16 -
Xml auslesen
Von JaD im Forum C/C++Antworten: 12Letzter Beitrag: 20.03.08, 10:51 -
Uhr Auslesen
Von Mailyn im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 06.04.06, 12:58 -
GAC auslesen
Von bastiglasl im Forum .NET CaféAntworten: 6Letzter Beitrag: 25.11.05, 09:54





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren