Zum Inhalt springen

Refresh mit PL/SQL + HTML


Empfohlene Beiträge

Hi Leute,

hab da mal eine Frage, hoffe doch das ich hier richtig rein poste ;-)

Also ich benutzte PL/SQL und HTML.

Ich ahbe eine HTML seite über die mir Tabellarich die inhalte einer Gewissen Tabelle ausgegeben werden.

Ich benutze Oracle9i und das ganze läuft über den Oracle http server .

Ich habe somit eine Page mit einem Frameset drin. Es sind genau 2 Frames, einer oben und der andere unten.

Im oberen frame ist die seite in der ich daten in die eingebe die dann per buttonklick ind die datenbank reingeschrieben werden.

im unteren Frame ist nur die Ausgabe der Daten in einer Tabelle.

ich würde jetzt gerne wissen wie ich es mache das wenn ich im oberen frame auf speichern klicke mein unterer frame so aktualisiert wird das ich den eintrag angezeigt bekomme den ich oben eingetragen habe.

Also will einfach wissen wie ich die untere frame aktualisiere bei buttonklick.

Brauche einen HTMl oder PL/SQL befehl.

schonmal Danke vorab

Gruss Eatthis

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, also die webseiten werden nicht generiert, die schreib ich selber.

hier ist ein bsp:

CREATE OR REPLACE PACKAGE BODY telbuch

AS

-- Globale Variablen:

pv_module_pfad varchar2(100) :='http://K7169106/pls/eat/telbuch.'; -- Pfad zum Prozeduraufruf

PROCEDURE Startseite

--Zeigt die Haupt-Frame an

AS

BEGIN

htp.p ('<html>');

htp.p (' <head>');

htp.p (' <title>Datenverwaltung Azubis DP-ITSolutions GmbH - Standort: Trier</title>');

htp.p (' <meta name="author" content="Sebastian Thommes">');

htp.p (' <meta name="copyright" content="Deutsche Post ITSolutions GmbH">');

htp.p (' </head>');

htp.p ('');

htp.p (' <frameset rows="*" cols="15%,*" framespacing="0" frameborder="Yes" border="2">');

htp.p (' <!-- (Obere frame) -->');

htp.p (' <frame name="Left" src="'||pv_module_pfad||'Menue" scrolling="no">');

htp.p ('');

htp.p (' <!-- (Mitlere frame) -->');

htp.p (' <frame name="Haupt" src="'||pv_module_pfad||'anzeigen" scrolling="no">');

htp.p ('');

htp.p (' <noframes>');

htp.p (' Ihr Browser kann keine Frames darstellen!');

htp.p (' </noframes>');

htp.p ('</frameset>');

htp.p ('</html>');

END Startseite;

PROCEDURE anzeigen

IS

n_azubinr number;

v_name varchar2(20);

v_vorname varchar2(20);

v_strasse varchar2(20);

v_ort varchar2(20);

n_plz number(5);

v_telpri varchar2(16);

v_raumnr varchar2(5);

v_telges varchar2(16);

TYPE cur_type IS REF CURSOR;

cur_lesen cur_type;

BEGIN

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Auslesen</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('<table width="37%" border="1">');

htp.p(' <tr> ');

htp.p(' <td width="27%"><strong>Azubinr</strong></td>');

htp.p(' <td width="34%"><strong>Name</strong></td>');

htp.p(' <td width="39%"><strong>Vorname</strong></td>');

htp.p(' <td width="39%"><strong>Strasse</strong></td>');

htp.p(' <td width="39%"><strong>Ort</strong></td>');

htp.p(' <td width="39%"><strong>PLZ</strong></td>');

htp.p(' <td width="39%"><strong>Telefon Privat</strong></td>');

htp.p(' <td width="39%"><strong>Raumnr</strong></td>');

htp.p(' <td width="39%"><strong>Telfon Geschäftlich</strong></td>');

htp.p(' <td width="39%"><strong>Loeschen</strong></td>');

htp.p(' </tr>');

OPEN cur_lesen FOR

'select azb_id,Name,Vorname,Strasse,Ort,Plz,Telpri,Raumnr,Telges from tb_telbuch' ;

LOOP

FETCH cur_lesen

INTO n_azubinr,v_name,v_vorname,v_strasse,v_ort,n_plz,v_telpri,v_raumnr,v_telges;

EXIT WHEN cur_lesen%notfound;

htp.p(' <tr> ');

htp.p(' <td>'||n_azubinr||'</td>');

htp.p(' <td>'||v_name||'</td>');

htp.p(' <td>'||v_vorname||'</td>');

htp.p(' <td>'||v_strasse||'</td>');

htp.p(' <td>'||v_ort||'</td>');

htp.p(' <td>'||n_plz||'</td>');

htp.p(' <td>'||v_telpri||'</td>');

htp.p(' <td>'||v_raumnr||'</td>');

htp.p(' <td>'||v_telges||'</td>');

htp.p(' <td><a href="'||pv_module_pfad||'loeschen?v_azubi_id='||n_azubinr||'"> L </a></td>');

htp.p(' </tr>');

END loop;

htp.p('</table>');

htp.p('</body>');

htp.p('</html>');

END anzeigen;

PROCEDURE eingeben

IS

BEGIN

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Erfassung</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('<form action="'||pv_module_pfad||'schreiben" method=get>');

htp.p('Name eingeben: <input name="Text_name" type="text" size="15" maxlength="20">');

htp.p('<br>');

htp.p('Vorname eingeben: <input name="Text_vorname" type="text" size="15" maxlength="20">');

htp.p('<br>');

htp.p('Straße eingeben: <input name="Text_straße" type="text" size="15" maxlength="20">');

htp.p('<br>');

htp.p('Ort eingeben: <input name="Text_ort" type="text" size="15" maxlength="20">');

htp.p('<br>');

htp.p('Plz eingeben: <input name="Nummer_plz" type="text" size="8" maxlength="5">');

htp.p('<br>');

htp.p('Tel. Privat eingeben: <input name="Text_telpri" type="text" size="15" maxlength="16">');

htp.p('<br>');

htp.p('Raumnr. eingeben: <input name="Text_raumnr" type="text" size="8" maxlength="5">');

htp.p('<br>');

htp.p('Tel. Geschaeftlich eingeben: <input name="Text_telges" type="text" size="15" maxlength="16">');

htp.p('<p>');

htp.p(' <input name="Save_button" type="submit" value="Speichern">');

htp.p('</p>');

htp.p('</form>');

htp.p('</body>');

htp.p('</html>');

END eingeben;

PROCEDURE schreiben

(

Text_name in varchar2,

Text_vorname in varchar2,

Text_straße in varchar2,

Text_ort in varchar2,

Nummer_plz in number,

Text_telpri in varchar2,

Text_raumnr in varchar2,

Text_telges in varchar2,

Save_button in varchar2 := 'x'

)

IS

BEGIN

IF Save_button = 'Speichern' THEN

insert into TB_TELBUCH (Azb_id,Name,Vorname,Strasse,Ort,Plz,Telpri,Raumnr,Telges) values (sq_azbid.nextval,Text_name,Text_vorname,Text_straße,Text_ort,Nummer_plz,Text_telpri,Text_raumnr,Text_telges);

commit;

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Gespeichert!</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('Erfolgreich abgespeichert :-)');

htp.p('</br>');

htp.p('</body>');

htp.p('</html>');

ELSIF Save_button = 'x' THEN

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Fehler!</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('Zuerst Prozedur "eingeben" aufrufen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');

htp.p('</body>');

htp.p('</html>');

END IF;

eingeben; -- Prozeduraufruf zum aktualisieren

END schreiben;

PROCEDURE Menue

IS

BEGIN

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Menue</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('<center>');

htp.p('<br>');

htp.p('<br>');

htp.p('<br>');

htp.p('<br>');

htp.p('<a href="'||pv_module_pfad||'anzeigen" target="Haupt">Alle Daten anzeigen</a>');

htp.p('<br>');

htp.p('<br>');

htp.p('<a href="'||pv_module_pfad||'eingeben" target="Haupt">Azubi eintragen</a>');

htp.p('<br>');

htp.p('<br>');

htp.p('<a href="'||pv_module_pfad||'anzeigen" target="Haupt">Ändern</a>');

htp.p('<br>');

htp.p('<br>');

htp.p('<a href="'||pv_module_pfad||'eingeben" target="Haupt">Löschen</a>');

htp.p('</center>');

htp.p('</body>');

htp.p('</html>');

END Menue;

PROCEDURE loeschen

(

v_azubi_id number

)

AS

BEGIN

delete from SCOTT.tb_telbuch

where azb_id = v_azubi_id;

commit;

htp.p ('<html>');

htp.p ('<head>');

htp.p ('<title>Geloescht</title>');

htp.p ('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p ('</head>');

htp.p ('<body>');

htp.p (' <b><font color="#FF3333">Datensatz des Azubis wurde gelöscht!</font></b> ');

htp.p ('</div>');

htp.p ('</body>');

htp.p ('</html>');

END loeschen;

gruss eat

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Eatthis

Nein, also die webseiten werden nicht generiert, die schreib ich selber.

hier ist ein bsp:

CREATE OR REPLACE PACKAGE BODY telbuch

AS

-- Globale Variablen:

pv_module_pfad varchar2(100) :='http://K7169106/pls/eat/telbuch.'; -- Pfad zum Prozeduraufruf

PROCEDURE Startseite

--Zeigt die Haupt-Frame an

AS

BEGIN

htp.p ('<html>');

htp.p (' <head>');

htp.p (' <title>Datenverwaltung Azubis DP-ITSolutions GmbH - Standort: Trier</title>');

htp.p (' <meta name="author" content="Sebastian Thommes">');

htp.p (' <meta name="copyright" content="Deutsche Post ITSolutions GmbH">');

htp.p (' </head>');

htp.p ('');

htp.p (' <frameset rows="*" cols="15%,*" framespacing="0" frameborder="Yes" border="2">');

htp.p (' <!-- (Obere frame) -->');

htp.p (' <frame name="Left" src="'||pv_module_pfad||'Menue" scrolling="no">');

htp.p ('');

htp.p (' <!-- (Mitlere frame) -->');

htp.p (' <frame name="Haupt" src="'||pv_module_pfad||'anzeigen" scrolling="no">');

htp.p ('');

htp.p (' <noframes>');

htp.p (' Ihr Browser kann keine Frames darstellen!');

htp.p (' </noframes>');

htp.p ('</frameset>');

htp.p ('</html>');

END Startseite;

PROCEDURE anzeigen

IS

n_azubinr number;

v_name varchar2(20);

v_vorname varchar2(20);

v_strasse varchar2(20);

v_ort varchar2(20);

n_plz number(5);

v_telpri varchar2(16);

v_raumnr varchar2(5);

v_telges varchar2(16);

TYPE cur_type IS REF CURSOR;

cur_lesen cur_type;

BEGIN

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Auslesen</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('<table width="37%" border="1">');

htp.p(' <tr> ');

htp.p(' <td width="27%"><strong>Azubinr</strong></td>');

htp.p(' <td width="34%"><strong>Name</strong></td>');

htp.p(' <td width="39%"><strong>Vorname</strong></td>');

htp.p(' <td width="39%"><strong>Strasse</strong></td>');

htp.p(' <td width="39%"><strong>Ort</strong></td>');

htp.p(' <td width="39%"><strong>PLZ</strong></td>');

htp.p(' <td width="39%"><strong>Telefon Privat</strong></td>');

htp.p(' <td width="39%"><strong>Raumnr</strong></td>');

htp.p(' <td width="39%"><strong>Telfon Geschäftlich</strong></td>');

htp.p(' <td width="39%"><strong>Loeschen</strong></td>');

htp.p(' </tr>');

OPEN cur_lesen FOR

'select azb_id,Name,Vorname,Strasse,Ort,Plz,Telpri,Raumnr,Telges from tb_telbuch' ;

LOOP

FETCH cur_lesen

INTO n_azubinr,v_name,v_vorname,v_strasse,v_ort,n_plz,v_telpri,v_raumnr,v_telges;

EXIT WHEN cur_lesen%notfound;

htp.p(' <tr> ');

htp.p(' <td>'||n_azubinr||'</td>');

htp.p(' <td>'||v_name||'</td>');

htp.p(' <td>'||v_vorname||'</td>');

htp.p(' <td>'||v_strasse||'</td>');

htp.p(' <td>'||v_ort||'</td>');

htp.p(' <td>'||n_plz||'</td>');

htp.p(' <td>'||v_telpri||'</td>');

htp.p(' <td>'||v_raumnr||'</td>');

htp.p(' <td>'||v_telges||'</td>');

htp.p(' <td><a href="'||pv_module_pfad||'loeschen?v_azubi_id='||n_azubinr||'"> L </a></td>');

htp.p(' </tr>');

END loop;

htp.p('</table>');

htp.p('</body>');

htp.p('</html>');

END anzeigen;

PROCEDURE eingeben

IS

BEGIN

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Erfassung</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('<form action="'||pv_module_pfad||'schreiben" method=get>');

htp.p('Name eingeben: <input name="Text_name" type="text" size="15" maxlength="20">');

htp.p('<br>');

htp.p('Vorname eingeben: <input name="Text_vorname" type="text" size="15" maxlength="20">');

htp.p('<br>');

htp.p('Straße eingeben: <input name="Text_straße" type="text" size="15" maxlength="20">');

htp.p('<br>');

htp.p('Ort eingeben: <input name="Text_ort" type="text" size="15" maxlength="20">');

htp.p('<br>');

htp.p('Plz eingeben: <input name="Nummer_plz" type="text" size="8" maxlength="5">');

htp.p('<br>');

htp.p('Tel. Privat eingeben: <input name="Text_telpri" type="text" size="15" maxlength="16">');

htp.p('<br>');

htp.p('Raumnr. eingeben: <input name="Text_raumnr" type="text" size="8" maxlength="5">');

htp.p('<br>');

htp.p('Tel. Geschaeftlich eingeben: <input name="Text_telges" type="text" size="15" maxlength="16">');

htp.p('<p>');

htp.p(' <input name="Save_button" type="submit" value="Speichern">');

htp.p('</p>');

htp.p('</form>');

htp.p('</body>');

htp.p('</html>');

END eingeben;

PROCEDURE schreiben

(

Text_name in varchar2,

Text_vorname in varchar2,

Text_straße in varchar2,

Text_ort in varchar2,

Nummer_plz in number,

Text_telpri in varchar2,

Text_raumnr in varchar2,

Text_telges in varchar2,

Save_button in varchar2 := 'x'

)

IS

BEGIN

IF Save_button = 'Speichern' THEN

insert into TB_TELBUCH (Azb_id,Name,Vorname,Strasse,Ort,Plz,Telpri,Raumnr,Telges) values (sq_azbid.nextval,Text_name,Text_vorname,Text_straße,Text_ort,Nummer_plz,Text_telpri,Text_raumnr,Text_telges);

commit;

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Gespeichert!</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('Erfolgreich abgespeichert :-)');

htp.p('</br>');

htp.p('</body>');

htp.p('</html>');

ELSIF Save_button = 'x' THEN

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Fehler!</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('Zuerst Prozedur "eingeben" aufrufen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');

htp.p('</body>');

htp.p('</html>');

END IF;

eingeben; -- Prozeduraufruf zum aktualisieren

END schreiben;

PROCEDURE Menue

IS

BEGIN

htp.p('<html>');

htp.p('<head>');

htp.p('<title>Menue</title>');

htp.p('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p('</head>');

htp.p('<body>');

htp.p('<center>');

htp.p('<br>');

htp.p('<br>');

htp.p('<br>');

htp.p('<br>');

htp.p('<a href="'||pv_module_pfad||'anzeigen" target="Haupt">Alle Daten anzeigen</a>');

htp.p('<br>');

htp.p('<br>');

htp.p('<a href="'||pv_module_pfad||'eingeben" target="Haupt">Azubi eintragen</a>');

htp.p('<br>');

htp.p('<br>');

htp.p('<a href="'||pv_module_pfad||'anzeigen" target="Haupt">Ändern</a>');

htp.p('<br>');

htp.p('<br>');

htp.p('<a href="'||pv_module_pfad||'eingeben" target="Haupt">Löschen</a>');

htp.p('</center>');

htp.p('</body>');

htp.p('</html>');

END Menue;

PROCEDURE loeschen

(

v_azubi_id number

)

AS

BEGIN

delete from SCOTT.tb_telbuch

where azb_id = v_azubi_id;

commit;

htp.p ('<html>');

htp.p ('<head>');

htp.p ('<title>Geloescht</title>');

htp.p ('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">');

htp.p ('</head>');

htp.p ('<body>');

htp.p (' <b><font color="#FF3333">Datensatz des Azubis wurde gelöscht!</font></b> ');

htp.p ('</div>');

htp.p ('</body>');

htp.p ('</html>');

END loeschen;

gruss eat

grass was is das??

sind das normale stored prozedures?

hab ich ja noch nie gesehen sowas.

kannst ma ein bisschen erläutern was das is?

ist das nur oracle spezifisch?

gruss kills

Link zu diesem Kommentar
Auf anderen Seiten teilen

@eatthis

Hast du schonmal mit JavaScript probiert ?

Also nach

htp.p('Erfolgreich abgespeichert :-)');

noch ein

htp.p('<script language="JavaScript">document.Haupt.location.reload()</script>');

oder aber

htp.p('<script language="JavaScript">document.Haupt.location.href="'||pv_module_pfad||'anzeigen"</script>');

Wobei ich mir hierbei nicht sicher bin, das er auch wirklich Aktualisiert, da die Seite ja im Prinzip schon da ist.

MfG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von DanielH

@eatthis

Hast du schonmal mit JavaScript probiert ?

Also nach

htp.p('Erfolgreich abgespeichert :-)');

noch ein

htp.p('<script language="JavaScript">document.Haupt.location.reload()</script>');

oder aber

htp.p('<script language="JavaScript">document.Haupt.location.href="'||pv_module_pfad||'anzeigen"</script>');

Wobei ich mir hierbei nicht sicher bin, das er auch wirklich Aktualisiert, da die Seite ja im Prinzip schon da ist.

MfG

Ja, Thx , versuch ich mal so.

Gruss Eatthis

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...