Hallo,
ich habe ein Formular das x-fache Arrays anzeigt und eine neue Eingabezeile für den User. Das Form wird solange aufgerufen bis der User mitteilt dass er keine weiteren Daten mehr erfassen möchte und auf eine andere Datei verlinkt wird um die erfassten Daten zu verarbeiten. In Grundzügen sieht das so aus:
Es folgen die 5 Eingabefelder für 'anz', 'text', 'preis', 'ust' und 'manod' sowie ein Button für Übernahme und ein Button für Ende. Bei Button Übernahme wird auf SELF verwiesen, bei Button Ende auf Folgedatei die Daten abarbeitet.
$_POST['para'] ist beim ersten Aufruf 0, dann wird immer 1 übergeben.
$zeile wird jeweils um Wert 1 erhöht übergeben, $i wird jeweils mit 0 übergeben:
<input type="hidden" name="para" value="1">
<input type="hidden" name="zeile" value='<?php echo $zeile?>'>
<input type="hidden" name="i" value="0">
Schließlich übergebe ich die bisher erfassten Datensätze:
Das funktioniert ja soweit, nur man stelle sich mal vor der User erfasst beispielsweise 30 Datensätze oder mehr, dann bläst sich die Übergabe ganz schön auf. Ich habe schon daran gedacht die Arrays Datensätze in der Session zu übergeben und nach Abarbeiten einfach die Session zu löschen, allerdings habe ich in der Session bereits einiges an Daten, unter anderem 2 Variablen die auf der ganzen Site Gültigkeit haben, somit kann ich die Session nicht löschen. Könnte sie nur auf der Seite auf der die Daten abgearbeitet werden löschen und sofort neu eröffnen um diese beiden Variablen wieder zur Verfügung zu haben.
Kann man eigentlich 2 Sessions parallel laufen lassen? Dann wäre es relativ einfach.
Wie gesagt, dass Ganze funktioniert eigentlich, nur finde ich dass ich es nicht elegant gelöst habe. Hat wer ne Idee wie es besser ginge?
Gruß
Alexander
ich habe ein Formular das x-fache Arrays anzeigt und eine neue Eingabezeile für den User. Das Form wird solange aufgerufen bis der User mitteilt dass er keine weiteren Daten mehr erfassen möchte und auf eine andere Datei verlinkt wird um die erfassten Daten zu verarbeiten. In Grundzügen sieht das so aus:
PHP-Code:
switch ($_POST['para']) {
// Wenn erster Seitenzugriff dann passiert nichts
case "0":
break;
// Eintrag der letzten Formularerfassung ins Array
default:
$datensatz[$zeile][0] = $_POST['anz'];
$datensatz[$zeile][1] = $_POST['text'];
$datensatz[$zeile][2] = $_POST['preis'];
$datensatz[$zeile][3] = $_POST['ust'];
$datensatz[$zeile][4] = $_POST['manod'];
while ($i <= $zeile) {
echo "<tr height='20'>\n";
echo "<td class='desc' width='28' height='20'> " . $datensatz[$i][0] . "</td>\n";
echo "<td class='desc' width='652' height='20'> " . $datensatz[$i][1] . "</td>\n";
echo "<td class='desc' width='92' height='20'> " . number_format($datensatz[$i][2],2,",",".") . "</td>\n";
echo "<td class='desc' width='45' height='20'> " . $datensatz[$i][3] . "</td>\n";
echo "<td class='desc' width='45' height='20'> " . $datensatz[$i][4] . "</td>\n";
echo "<td height='20'></td>\n";
echo "</tr>";
$i++;
}
$zeile++;
break;
}
$_POST['para'] ist beim ersten Aufruf 0, dann wird immer 1 übergeben.
$zeile wird jeweils um Wert 1 erhöht übergeben, $i wird jeweils mit 0 übergeben:
<input type="hidden" name="para" value="1">
<input type="hidden" name="zeile" value='<?php echo $zeile?>'>
<input type="hidden" name="i" value="0">
Schließlich übergebe ich die bisher erfassten Datensätze:
PHP-Code:
$a = 0;
while ($a <= $zeile) {
echo "<input type='hidden' name='datensatz[" . $a . "]' value='<?php echo $datensatz[" . $a . "] ?>'>\n";
$a++;
}
Kann man eigentlich 2 Sessions parallel laufen lassen? Dann wäre es relativ einfach.
Wie gesagt, dass Ganze funktioniert eigentlich, nur finde ich dass ich es nicht elegant gelöst habe. Hat wer ne Idee wie es besser ginge?
Gruß
Alexander
Kommentar