phpbar.de logo

Mailinglisten-Archive

[php] PHPLIB: Navigationsbuttons?

[php] PHPLIB: Navigationsbuttons?

Johann-Peter Hartmann Hartmann_(at)_freecharts.de
Wed, 16 Aug 2000 08:34:33 +0200


Hallo Jens

Jens Benecke [mailto:jens_(at)_pinguin.conetix.de]On schrieb:

> Eine Datenbankabfrage (mittels PHPLIB) spuckt, sagen wir mal, 200 Zeilen
> Daten aus. Diese Tabelle soll, neben jeder Zeile eine Checkbox besitzen,
> und der Benutzer soll sich Zeilen auswählen dürfen, die dann beim erneuten
> "Abschicken" herausgefiltert werden sollen. Dies scheint die Table-Klasse
> ja zu können. Soweit, sogut.
>
> Jetzt kommt der Haken: Ich möchte den Benutzer entscheiden lassen, wie
> viele er auf einmal angezeigt haben möchte, und dann, je nach Anzahl der
> Ergebnisse, oben/unten jeweils links u/o rechts zwei Knöpfe
> (first/previous) bzw. (next/last) einbauen, mit denen man
> blättern kann. Da
> stellen sich jetzt folgende Fragen:
>
> - Wie baue ich ein entsprechendes Element in das "form()" Modul ein, daß
>   das "LIMIT $aufeinmalanzuzeigendeergebniszeilen" mit in den SQL Code
>   übernommen wird?

	Welches form()-Modul ? sqlquery oder oohforms oder ulfforms oder ?

> - Wie handhabe ich das mit den Navigationsbuttons, möglichst
> natürlich auch
>   so daß die ausgewählten Zeilen innerhalb einer Session gespeichert
>   bleiben, auch wenn sie gerade nicht angezeigt bleiben?
>
> - Ich möchte den Benutzer "kontrolliert" aus einer Session rauswerfen
>   können, d.h. er soll _nicht_ versehentlich das Browserfenster schließen
>   können, nachdem er 20min lang aus 2000 Ergebnissen seine gewünschten 180
>   rausgefiltert hat (ja, das kommt vor!). Reicht es, dem Session-Cookie
>   eine genügend lange Lebensdauer (sagen wir 1h) mitzugeben, damit seine
>   Suchergebnisse auch einen Browserneustart überleben, oder muß
> ich da noch
>   was beachten?


	1. es handelt sich um ein Multipage-Formular. Multipage-Formulare
	   erzeugen genau das von Dir genannte Problem: ich brauche die
	   Daten der schon ausgefüllten Seiten irgendwo .
	   Dafuer gibt es zwei Ansätze:
	   a) ich speicher sie in session-Variablen, wie Du es ja
	      auch angedacht hast
	   b) ich uebergebe sie als versteckte Variablen im Formular.

	2. Die bereits ausgefuellten Felder sollen auch ausgefuellt bleiben.
	   Damit ist Variante b) draussen - schliesslich ist das Form
	   schlicht nicht mehr da.
	   Variante a) funktioniert bei normalen Sessions auch nicht,
	   da mit einem neuen Browser auch immer eine neue Session
	   kommt - schliesslich kann der Server nicht feststellen, ob
	   es noch immer der gleiche Nutzer am Client ist .
	   Der Workaround sind user-Variablen als Formularspeicher.
	   Das setzt allerdings folgendes vorraus:
	 	- funktionierende Authentifizierung mittels auth -
		  diese kann man auch mit dem mode "reg" unsichtbar
		  für den Nutzer durchführen, dann sollte man nur ein
	  	  cookie mit Nutzername/Passwort setzen, damit dieser
		  wieder eingeloggt werden kann .
		- darauf aufsetzend die User-Funktionalität der PHPLib
		  Damit impliziert man allerdings, das ein Benutzer nur
		  ein Formular zur gleichen Zeit ausfüllen kann .

	3. Das ganze gibt es leider in der Form noch nicht in der PHPLib.
	   Eine Lösung für Multipage-Formulare ist in den Ulfforms,
	   sprich: der neuen Form-Klasse im CVS der PHPLib vorhanden -
	   als Speicher werden aber imho Sessions verwendet, Ulf
	   müßte mal sagen, ob man dem auch ein User-Objekt untermogeln
	   kann .
	   Ulf wird ebenfalls sagen, dass die Forms eigentlich noch
	   nicht fuer Production gedacht sind.

	4. 2 Wege: selberbauen auf oohforms, mit mehreren Form-Objekten,
	   und einem Mechanismus, der die ausgefüllten Daten abspeichert
	   und das richtige Form anzeigt.
	   Sich in die steile Lernkurve von ulfforms (gibt glaub ich
	   kein funktionierendes Beispiel zur Zeit ) werfen und
	   eine schlaue Lösung verwenden.
	   Imho ist beides aufwendig, aber das ist ja meistens so .


	Vielleicht sind diese Informationen ja hilfreich :-) .

	Grüße, johann



php::bar PHP Wiki   -   Listenarchive