Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Foreach will nicht ganz wie ich.

Hi,

Ich hab gerade mal Array`s in Angriff genommen, weil es ja doch bei größeren Sachen deutlich Arbeit erspart.

Nun habe ich allerdings ein Problem beim auslesen des Arrays.

Undzwar möchte ich ihn in einer Tabelle auslesen lassen, die in 3 Teile unterteilt ist.
So wie ich es bis jetzt habe rennt er mir die komplette Tabelle mit jedem Array Value einzeln einmal durch.

Also in der Tabelle gib es z.B. 9 Felder mit verschiedenen Namen
allerdings macht er mir 9 Tabellen wo jeweils jedes der 9 Felder den Namen des aktuellen Wertes trägt.

Ich habe mir auch schon einiges durchgelesen im Inet aber bin nicht wirklich auf eine Lösung gestoßen, vlt kann mir von euch jemmand helfen.

Der Code

Zitat:
<?

$table = array ("test1"=>"Test1:", "test2"=>"Test2:", "test3"=>"Test3:", "test4"=>"Test4:", "test5"=>"Test5:", "test6"=>"Test6:", "test7"=>"Test7:", "test8"=>"Test8:", "test9"=>"Test9:");

foreach($table as $key => $value)

{
// Table Anfang
echo "<table border=1>";


// Überschrift Kategorie 1
echo "<tr><th style='padding: 3;' colspan=2>Kat.1</th></tr>";

// Felder Kategorie 1
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='text' name='$key'></td></tr>";
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='text' name='$key'></td></tr>";


// -----------------------------

// Überschrift Kategorie 2
echo "<tr><th style='padding: 3;' colspan=2>Kat.2</th></tr>";

// Felder Kategorie 2
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='text' name='$key'></td></tr>";
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='text' name='$key'></td></tr>";
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='text' name='$key'></td></tr>";
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='text' name='$key'></td></tr>";
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='text' name='$key'></td></tr>";


// -----------------------------

// Überschrift Kategorie 3
echo "<tr><th style='padding: 3;' colspan=2>Kat.3</th></tr>";

// Felder Kategorie 3
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='text' name='$key'></td></tr>";
echo "<tr><td style='padding: 3;'>$value</td><td style='padding: 3;'><input type='checkbox' name='$key'></td></tr>";


// ----------------------------

// Submitfeld
echo "<tr><td style='padding: 3;' colspan=2 align='center'><input type='submit' name='reg' value='testreg'></tr>";


// ----------------------------

// Table Ende
echo "</table>";
}


?>


Ich möchte nun gern das es so aussieht:

Kat.1
Test1:[INPUTFELD]
Test2:[INPUTFELD]
Kat.2
Test3:[INPUTFELD]
Test4:[INPUTFELD]
Test5:[INPUTFELD]
Test6:[INPUTFELD]
Test7:[INPUTFELD]
Kat.3
Test8:[INPUTFELD]
Test9:[CHECKBOX]
[SUBMIT]

Es sieht aber so aus

Kat.1
Test1:[INPUTFELD]
Test1:[INPUTFELD]
Kat.2
Test1:[INPUTFELD]
Test1:[INPUTFELD]
Test1:[INPUTFELD]
Test1:[INPUTFELD]
Test1:[INPUTFELD]
Kat.3
Test1:[INPUTFELD]
Test1:[CHECKBOX]
[SUBMIT]

Kat.1
Test2:[INPUTFELD]
Test2:[INPUTFELD]
Kat.2
Test2:[INPUTFELD]
Test2:[INPUTFELD]
Test2:[INPUTFELD]
Test2:[INPUTFELD]
Test2:[INPUTFELD]
Kat.3
Test2:[INPUTFELD]
Test2:[CHECKBOX]
[SUBMIT]

Und davon halt 9 Tabellen von Test1-Test9

Wäre echt cool wenn mir jemmand sagen könnte wo ich meinen
Fehler gemacht habe :)

Danke
Hier gehts zum Orginal Eintrag "Foreach will nicht ganz wie ich." im Forum

Antworten

Funktioniert das vielleicht mit einer FOR-Schleife:
Code:                   In Zwischenablage kopieren (nur IE)
1">

Gruß, Nienburger


2.

junge... das <table>-tag muss natürlich außerhalb der foreach! das ende tag logischer weiße auch! sonst startet er (wie du sicher gemerkt hast) bei jedem durchlauf ne neue tabelle!

MfG Kasalop

PS: die sind einspaltig oder? willst du das?


3.

Du rufst im Moment für jeden Value den ganzen Ronz auf, den du in der foreach Schleife hast .. also wird für jeden wert die komplette Tabelle hergestellt...


4.

Das Produkt reiner Langweile...
Code:                   In Zwischenablage kopieren (nur IE)
2">




5.

Danke,

aber Arrays werden doch häufig zur Tabellen erstellung benutzt wie macht ihr das den ?
Ich mein mit for ($i=0; $i<=99; $i++) {}
hätte ich genommen wenn ich die Felder nicht mit Namen benennen müsste.
Aber da ich ja andere Feldnamen als wie die Felder tatsächlich heißen sollen weil ich z.B. bestimmte zeichen ja nicht als Variablen benutzen darf.


Desshalb wollt ich es mit foreach ausprobiern ... aber wie ich eure reaktion so sehe scheint das nicht üblich zu sein.


6.

Doch, aber du hast es falsch benutzt, foreach geht für jedes Element im Array einmal den Code zwischen { und } durch.

Beim Code den ich gepostet habe sieht man wie es funktioniert.


Hier gehts zum Orginal Eintrag "Foreach will nicht ganz wie ich." im Forum
 
phpforum.de | Impressum