php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit Formular und Array


 
loebbeshop
11-08-2003, 21:22 
 
Hallo,

ich habe eine Datei angebot.php. Damit lese ich eine Textdatei (Artikel-Nr.; Beschreibung; Preis) per PHP in 2 assoziative Arrays:

Beschreibung[Artikel-Nr.] und
Preis[Artikel-Nr.] ein.

In der gleichen PHP-Datei folgt ein HTML-Formular mit 15 Texteingabefeldern für Artikelnummern. Das Formular ruft per action="angebot.php" die Beschreibung und den Preis aus den Arrays ab und gibt sie neben der Artikelnummer auf den Schirm aus.

Nun das Problem:
Bei jedem "submit" des Formulars werden die assoziativen Arrays neu aufgebaut. Bei 500kB Textdatei dauert das einige Sekunden.

Ich würde gerne nur beim ersten Aufruf der angebot.php die Arrays aufbauen. Bei jedem "Submit" sollen nur die Daten aus den Arrays entnommen werden.

Lothar

 
TobiaZ
11-08-2003, 21:48 
 
dann speicher das Array irgendwo! Sessions=

 
Moqui
11-08-2003, 21:50 
 
wenn ich dich richtig verstanden hab, ist das nur möglich, indem du beim ersten Aufruf deine Arrays in der URL zur nächsten Seite mitgibst.
Da du ja ein Formular verwendest ist wohl die einfachste Möglichkeit dies zu bewerkstelligen, indem du Hidden-Fields einbaust, die diese werte tragen.


oder mit sessions

@ TobiaZ :P

 
loebbeshop
11-08-2003, 23:53 
 
Ich verwende nur eine Seite.

Ich habe bis dato noch keine session-variablen eingesetzt. Ich wusste nicht, dass auch arrays gehen.

Habe ich denn die Möglichkeit abzufragen, ob das array der session-variablen bereits zugewiesen ist? Ansonsten wird bei jedem Aufruf der angebot.php die session_variable wieder neu aufgebaut.

 
TobiaZ
11-08-2003, 23:58 
 
isset()

 
loebbeshop
12-08-2003, 01:06 
 
Ok,

wie ist denn die Syntax für ein assoziatives Array in einer Session-Variable?

Ohne session lautet das array z.B.:

beschreibung[$artikelnummer] = $desc1;


$HTTP_SESSION_VARS["beschreibung"]...???

 
TobiaZ
12-08-2003, 01:08 
 
schonmal mit mehrdimensionalen arrays gearbeitet?

ist genauso wie mit normalen stringvariablen. musst dir das nur ebenenmäßig vorstellen.

 
loebbeshop
12-08-2003, 01:17 
 
Ja klar,

also geht das so?...

Das assoziative Array $beschreibung[$artikelnummer] enthält die passende Beschreibung zur Artikelnummer.

Dann...

session_register(array("beschreibung"));
$HTTP_SESSION_VARS["beschreibung"]=$beschreibung;

Ist in $HTTP_SESSION_VARS["beschreibung"] dann das komplette assoziative array gespeichert? Ich würde dann für die spätere Verarbeitung wieder mit $temp=$HTTP_SESSION_VARS["beschreibung"] auf das den Inhalt mit $temp[$artikelnummer] zugreifen.

 
TobiaZ
12-08-2003, 01:25 
 
$_Session[beschr][artnr] wäre die lösung.

aber bitte nicht mehr mit register! Das steht doch im Manual!


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:20 Uhr.