• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Arraywerte in PHP mit Formular eingeben

Registriert
19.01.07
Beiträge
116
Kann mir jemand sagen, wie man die Werte eines Arrays (PHP) durch ein Eingabeformular (HTML) zuweisen kann? Ich hab´s mit der Übermittlungsmethode $_POST versucht! Geklappt hat es leider nicht. In meinen Büchern hab ich hierzu nichts gefunden, was mir weiterhilft!
Hier der Code der HTML-Datei:

<html>
<body>
Bitte tragen Sie die Temperaturen der letzten 3 Tage ein! <p>
<form action = "post.php" method ="post">
Wert1: <input name = "tp[1]"> Erster Tag <p>
Wert2: <input name = "tp[2]"> Zweiter Tag <p>
Wert3: <input name = "tp[3]"> Dritter Tag <p>
<input type = "submit">
<input type = "reset">
</form>
</body>
</html>

Und hier der Code der PHP-Datei:

<html>
<body>
<?php
for($i=0; $i<=3; $i=$i+1)
{
echo "$_POST["tp[$i]"] <br>";
}
?>
</body>
</html>
 

duderino

Prinzenapfel
Registriert
26.01.06
Beiträge
555
Versteh irgendwie nicht was du meinst. Willst du die Werte in ein Array schreiben oder willst du die Werte aus einem Array nehmen und dann darstellen?

duderino
 

Hack

Granny Smith
Registriert
17.11.04
Beiträge
16
Hi,

wenn ich Dich richtig verstehe, willst du wissen, wie Du das Array in PHP korrekt ansprichst:

Code:
for ( $i=0; $i<count( $_POST['tp'] ); $i++ )
{
  echo $_POST['tp'][$i]."<br>";
}

Ich denke, eine weitere Erklärung ist nicht nötig, ich bin so schlecht im beschreiben ;)

Generell hat .holger natürlich recht und Du solltest im Formular den Feldern auch einen Typ zuweisen...
 

duderino

Prinzenapfel
Registriert
26.01.06
Beiträge
555
Vielleicht ist es so einfacher:

if(isset($_POST)) {
foreach($_POST as $fetch) {
echo $fetch;
}
}

Allerdings versteh ich immernoch nicht so recht was du damit machen willst, wenn es also nicht hilft, einfach vergessen ;)

duderino
 
Registriert
19.01.07
Beiträge
116
Vielleicht ist es so einfacher:



Allerdings versteh ich immernoch nicht so recht was du damit machen willst, wenn es also nicht hilft, einfach vergessen ;)

duderino

Ich möchte damit gar nichts besonderes machen, - hat mich nur rein theoretisch interessiert, da ich mir momentan mit einem Buch PHP anzueignen versuche.

Zur Erleuterung meines Problems

Um dem Array Werte zuzuweisen kann ich folgendermassen vorgehen:

<?php
$tp=array(17.4,19.2,21.8);
for ($i=0;$i<=3;$i=$i+1)
{
echo "$tp[$i] <br>";
}
?>

Anstelle der Wertzuweiseung durch $tp=array(...) wollte ich nun Eingabeformular verwenden, indem die Werte eingegeben werden können, um sie dann mit $_POST in die PHP-Datei einzulesen! Ich wundere mich wirklich, dass hierzu in diesem Buch nichts zu finden ist!
 
Registriert
19.01.07
Beiträge
116
Hi,

wenn ich Dich richtig verstehe, willst du wissen, wie Du das Array in PHP korrekt ansprichst:

Code:
for ( $i=0; $i<count( $_POST['tp'] ); $i++ )
{
  echo $_POST['tp'][$i]."<br>";
}

Ich denke, eine weitere Erklärung ist nicht nötig, ich bin so schlecht im beschreiben ;)

Generell hat .holger natürlich recht und Du solltest im Formular den Feldern auch einen Typ zuweisen...


Vielen Dank! Es hat geklappt!!!:)
 
Registriert
19.01.07
Beiträge
116
Also mit dem Vorschlag von Hack hats geklappt! Ich werd aber Deine Lösung auch noch ausprobieren! Vielen Dank für die Bemühungen!
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Wenn Du ein Array in einem Array in einem Array hast, wird das in PHP so notiert:
Code:
$Array[$a][$b][$c];
// usw.
Also nur nicht die eckigen Klammern verschachteln und schon gehts. Dass PHP die _POST-Werte eigenständig in Unterfelder schachtelt ist ein angenehmer Nebeneffekt, der hilft, die Formularwerte zu sortieren, was ich selbst gern dafür nutze, Personendaten von Bestelldaten, Terminen oder anderen Dingen abzugrenzen.

Eine hübsche Darstellung als Dump erhältst Du hiermit, dann wird es auch klarer, wenn man bestimmte Werte aus dem Baum selektieren möchte:
Code:
echo "<pre>\n", print_r($feldvariable), "</pre>\n";
 

mewX

Wohlschmecker aus Vierlanden
Registriert
26.12.06
Beiträge
241
Nochmal zur Erklärung was du falsch gemacht hast:

echo "$_POST["tp[$i]"] <br>";

=> Arrays können so nicht ausgegeben werden, da kommt PHP mit den Anführungszeichen durcheinander.
Entweder:
echo $_POST["bla"] . " <br>";
oder
echo "{$_POST['bla']} <br>"; (aber würde ersteres vorziehen)

gruß
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Sein Problem war allerdings weniger das Array erster Tiefe, sondern das Array innerhalb des ersten. Statt
$_POST['tb[$i]']
muss es
$_POST['tb'][$i]
heißen.