Abfrageergebnisse an vorhandene Seite anbinden
Martin
- html
0 Lutz T.
Hallo,
ich habe eine Accessdatenbank, die ich mit IDC/HTX abfrage. In dieser Datenbank sind einzelne Datenelemente mit ihren unterschiedlichen Eigenschaften und Referenzen in einer Vielzahl von Tabellen enthalten. Wenn der User ein Datenelement ausgewählt hat (über Eingabe von Buchstaben, Schlüsselwörtern oder einer Liste aller Datenelemente) gebe ich ihm als Ergebnis eine HTML-Datei Datei aus, in der ich den Namen des Datenelementes, eine allgemeine Beschreibung und auf der linken Seite des Fensters untereinander angeordnet Buttons darstelle, mit denen der User zusätzliche Informationen zu diesem Datenelement anfordern kann (jeweils versteckte Formulare, die jeweils den Key des Datenelementes für die Abfragen bereitstellen). In den Formularen kann ich als target ein neues Fenster angeben, in dem das Ergebnis dargestellt werden soll. Dieses Fenster kann ich auch so anordnen, daß es rechts unten dargestellt wird und sich in die vorherige Ansicht einfügt.
(Müßte es bei dieser Möglichkeit bleiben, wüßte ich gerne, wie ich "onload" in dem neuen Fenster die Symbolleisten unterdrücken kann, da sie unnötigen Platz beanspruchen.)
Viel schöner wäre es jedoch, wenn ich die Ergebnisse an die vorhandene Seite anhängen könnte, so daß der User sich - nachdem er die gewünschten zusätzlichen Informationen abgerufen hat - den entstandenen Report als ein Dokument ausdrucken oder speichern kann.
Natürlich könnte ich für jede möglich Antwort einen Frame definieren. Jeder von ihnen kann zwar variabel viel Text aufnehmen, aber da alle möglichen Frames sich auf das vorhandene Fenster beschränken, habe ich am Schluß in jedem Frame die Anzeige von einer Zeile mit Scrollmöglichkeit (weder schön anzuschauen, noch die gewünschte Reportdruckfunktion).
Theoretisch bräuchte ich eine Art Platzhalter auf der Seite, die durch die Abfrageergebnisse (Tabellen variabler Länge) bei Bedarf nach und nach ersetzt werden können und die Seite verlängern.
Schon mal vielen Dank
Martin
Hallo Martin,
halt Dir ein Div mit id='Daten' auf der Anzeige-Seite und eine JS-Variable DivInhalt, die am Anfang ein leerer String ist.
Mach auf die Seite eine JS-Funktion
function SetDaten(Daten, ersetzen)
{ if (ersetzen) DivInhalt=Daten;
else DivInhalt+=Daten;
document.getElementByID('Daten').innerHTML=DivInhalt
}
Dann machst Du ein Frameset, bestehend aus 2 Seiten, wobei die Anzeige-Seite 100% einnimmt. Mit der anderen Seite machst Du die Datenbank-Abfrage, schreibst die Daten in eine JS-Variable, sagen wir Daten_Neu, und rufst am Ende der Seite die JS-Funktion
parent.frames[0].SetDaten(Daten_Neu,true) auf.
Den Code kannst mußt Du noch anpassen, daß er für die verschiedenen Browser geht, aber im Prinzip geht das schon so.
Gruß, Lutz