php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-02-2007, 08:54
ah72103
 Newbie
Links : Onlinestatus : ah72103 ist offline
Registriert seit: Sep 2002
Ort: Wien
Beiträge: 68
ah72103 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Elegantere Lösung für x-fach Array Post

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:

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'>&nbsp;" $datensatz[$i][0] . "</td>\n";
echo 
"<td class='desc' width='652' height='20'>&nbsp;" $datensatz[$i][1] . "</td>\n";
echo 
"<td class='desc' width='92' height='20'>&nbsp;" number_format($datensatz[$i][2],2,",",".") . "</td>\n";
echo 
"<td class='desc' width='45' height='20'>&nbsp;" $datensatz[$i][3] . "</td>\n";
echo 
"<td class='desc' width='45' height='20'>&nbsp;" $datensatz[$i][4] . "</td>\n";
echo 
"<td height='20'></td>\n";
echo 
"</tr>";
$i++;

$zeile++;
break;

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:
PHP-Code:
$a = 0;
while ($a <= $zeile) {
echo "<input type='hidden' name='datensatz[" . $a . "]' value='<?php echo $datensatz[" . $a . "?>'>\n";
$a++;
}
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
Mit Zitat antworten
  #2 (permalink)  
Alt 19-02-2007, 09:52
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und wieso machst du nicht einfach ein unter-Array in der Session?
$_SESSION['die_daten'] = blabla;

wenn sie nicht mehr gebraucht werden
unset($_SESSION['die_daten']);

Wenn da in $_SESSION['username'] oder so noch was drin ist, ist das doch total egal~
Mit Zitat antworten
  #3 (permalink)  
Alt 19-02-2007, 12:58
ah72103
 Newbie
Links : Onlinestatus : ah72103 ist offline
Registriert seit: Sep 2002
Ort: Wien
Beiträge: 68
ah72103 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke ghostgambler,

genau das ist es. Auf die logischsten Lösungen kommt man meist nicht selbst ...

Gruß Alexander
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:55 Uhr.