Sven Rautenberg: Daten definiert plazieren

Beitrag lesen

Hallo Sven

Bin noch immer dran und vom Aufgeben kann noch lange nicht die Rede sein.

Fein.

...wobei du noch nicht verrätst, mit welcher Sprache das geschehen soll. PHP, ASP, JSP, C++, Perl, Assembler

Also mit den Sprachen mache ich gerne ein Durcheinander. Am Ehesten habe ich noch von C++ eine Ahnung. Aber in diesem Fall bemühe ich mich mit ASP.

ASP ist dafür in Ordnung. Macht viele Dinge einfacher, aber auch nicht so leicht, wie PHP (wenn ich richtig informiert bin).

Bin auch schon auf die Idee gekommen, dass ich das ganze falsch angehe. Muss deshalb noch weiter Üben und Versuche machen. Ich verstehe nur nicht, als C++ Kleinanwender, warum ein direkter Weg nicht funktioniert.

Tja, das habe ich mir fast gedacht.

Überleg mal mit: ASP kommt WO zum Einsatz? Auf dem Server.
Was weiß also ASP zu diesem Zeitpunkt? Alles das, was ASP selbst erfragen kann, also Datenbankinhalte, Serverinfos, die Formulardaten, die der Surfer gerade geschickt hat.
Was weiß ASP NIEMALS? Wo der User gerade klickt oder seine Maus hat. Denn das ist Aufgabe des Browsers, die Mausklicks zu verwalten.

Der übliche Ablauf sieht also so aus: Du schickst vom Server eine Seite mit Formular[1]. Das wird vom User ausgefüllt und abgeschickt. JETZT ist wieder ASP dran und macht daraus etwas sinnvolles. Was mit der Datenbank in dem Moment passiert, sieht der User nicht, aber die Bestätigungsseite, die sieht er. Und dann hat ASP wieder Pause, und der User reagiert auf die Ausgabe erneut.

Dein Problem spaltet sich also in viele kleinere ASP-Skripte. Du darfst dabei nicht durchgängig einen Programmfluß ausdenken, sondern mußt immer im Hinterkopf haben, daß dein Skript nach dem Ausliefern einer Seite erstmal Pause hat, und ein anderes (oder auch das gleiche) Skript später (wenn der User was neues klickt und abschickt) wieder zum Einsatz kommt.

Dein Problem mit dem Test löst sich im Prinzip so:
Ein Skript schickt die erste Seite mit Formular. Das Formular wird an das zweite Skript geschickt, welches die Daten speichert und die zweite Seite ausgibt - wenn man nur ankreuzen und abhaken kann, sollte es keine Fehleingaben geben. Die zweite Seite hat wieder ein Formular, welches an das dritte Skript geschickt wird. Das speichert wieder die Daten und gibt die dritte Seite aus.

Und wenn dann die dritte Seite ausgefüllt wurde, wird das Formular an das vierte Skript geschickt, welches die neuen, letzten Daten in die Datenbank speichert, dann die gesamte Datenbank nach den Daten des aktuellen Users befragt und die Auswertung in eine neue Seite schreibt. Und dann sind die Ergebnisse automatisch dort platziert, wo du sie hinhaben willst, wenn du an der richtigen Stelle den Ausgabebefehl für die Variable platzierst.

Ich glaube, mit diesen Infos kannst du erstmal arbeiten. :)

- Sven Rautenberg

[1] Das ganze geht auch ohne explizites Formular, nämlich mit URL-Parametern, die im Prinzip nichts anderes sind als ein GET-Formular. Aber merke: URL-Parameter und Formulare nicht mischen, also keinen Parameter in <form action="">, sondern dann in <input type="hidden">-Felder packen. Zu Risiken lies SelfHTML oder frage die FAQ oder das Forum. :)