Schau dir mal die Funktion serialize an.
Mit dessen Hilfe kannst du Arrays so umwandeln, dass du sie per Formular verschicken kannst. Anschließend musst du sie per unserialize() wieder in dein Array zurückwandeln.
$ausgabe = "select * from zustaendigkeiten where lfd_af_nr =$belegt"; $mi = mysql_query($ausgabe, $db); $rau = mysql_fetch_row($mi);
$num =$rau[0]; /* ********************************************* Nun wird der zuständige Mitabeiter selektiert ********************************************* */
$select_task="select m.name, m.ma_nr, m.vorname, m.land from mitarbeiter m join zustaendigkeiten z on (m.ma_nr = z.ma_nr) where z.lfd_af_nr = $belegt and m.aktiv =1 order by m.land ";
/* ****************************************************************************** Wenn der Mitarbeiter zur geplanten Projektzeit abwesend sein wird, wird er im in diesem Drop-down in rot angezeigt ***************************************************************************** */ $ausgabe = "select m.ma_nr, m.name, m.vorname, g.bezeichnung from mitarbeiter m join abwesenheiten a on (m.ma_nr = a.ma_nr) join grund g on (g.lfd_gr_nr = a.lfd_gr_nr) where m.ma_nr = $manr and a.datum <= '$datum' and a.end_datum >= '$datum' ";
/*alter $ausgabe = "select ma_nr, name, vorname, bezeichnung from mitarbeiter natural join abwesenheiten natural join grund where ma_nr = $manr and datum <= '$datum' and end_datum >= '$datum' ";*/ $ab = mysql_query($ausgabe, $db); if($ab){ $abw = mysql_fetch_row($ab); $ab_ma_nr=$abw[0]; $abw_n=$abw[1]; $abw_vo=$abw[2]; $abw_gr=$abw[3];
//Aufbereiten der notwendigen Daten per SQL-Anfragen
$array[]=array($_POST['nam'],$_POST['datum'],$name,$vorname,$t,$farbe,$ma_select,$land,$thisday,$user,$day,$mem,$task,$lfd3); } ?> <!-- ***************************** Hier wird die Überschrift der Steps erstellt ***************************** -->
<p></p> <center> <table width="420" border="0" align="left"> <tr> <td width="414" background="/images/backgr6.png" bgcolor="#FFFFFF" scope="col"><div align="left" class="line2">Step 3: Save the following Project</div></td> </tr> </table> <p> </p> </center>
Ich bekomme damit einen Eintrag generiert, der auch in der Tabelle ausgegeben wird.
Sobald ich im Formular den select option zur Mitarbeiterauswahl wähle und er refresht ist das Array leer und er gibt nichts aus.
Was habe ich falsch gemacht? Warum wird kein zweiter Eintrag ans Array gehängt?
Es wird doch alles konform gemacht.
Serialize....hidden post....unserialize usw.
Die Sache ist ganz simpel.
Ich habe ein formular welches ich durch den Button speichern in ein array lese und dieses Array später auf der selben Seite nochmal als Übersicht ausgebe.
nun möchte ich das Array erweitern(der Benutzer füllt das Formular nochmal aus).
und dies soll dann so wie der erste Eintrag dann auch wieder in der Übersicht erscheinen.
Muss ich das Array serialisieren um es per Post zu übergeben?
Und dann einfach wieder einlesen per unserialize()?
Der Index des Array schreibt sich doch fort wenn keine index-angebe gemacht wird?
array[]=array("1.datensatz an index 0");
array[]=array("2.datensatz an index 1");
Dir ist aber schon klar, dass viele Server bei 200 PostFeldern dicht machen?
Bei dir entstehen in der Schleife endlos viele <input name="ma" type="hidden". Jeder Name darf nur einmal vergeben werden.
Zitat:
Muss ich das Array serialisieren um es per Post zu übergeben?
Dazu habe ich schon was gesagt.
Mein Tipp:
Mache dich über AffenFormular kundig.
Verwende Sessions für mehrseitige Formulare.
Oder Sspeichere die Daten in einer DB.
dass viele Server bei 200 PostFeldern dicht machen
wusste ich auch noch nicht...
Zitat:
Zitat von Mc Pole
Die <input name="ma" type="hidden" sind auskommentiert und dienten nur zur kontrolle welche daten übergeben werde.
das wirst du in der produktiv-version entfernen, ja?
Zitat:
Zitat von Mc Pole
*PUSH*
bitte lass das - das wird ebenso wie betteln nicht gern gesehen.
Zitat:
Zitat von DokuLeseHemmung
Mache dich über AffenFormular kundig.
Verwende Sessions für mehrseitige Formulare.
Oder speichere die Daten in einer DB.
diese hinweise würde ich mir zu herzen nehmen. ich sehe auf deinen screenshots etwas, das wie eine desktop-applikation aussehen soll; wir bewegen uns allerdings im web. denke auch an die usability der oberfläche.