Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Refresh mit PL/SQL + HTML

Empfohlene Antworten

Veröffentlicht

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

...gehört eigentlich in die WebProgrammierer - Ecke... ich würde es mit JavaScript oder sowas machen.

Aber frag die Experten dazu! :D

Gruss,

der Onkel

ja, danke, ich war mir nicht sicher wohin ichs schreiben sollte

Original geschrieben von Eatthis

ja, danke, ich war mir nicht sicher wohin ichs schreiben sollte

Ich schiebs mal rüber :)

Hallo,

benutzt du zur Web-Seite generierung das HTP-Package?

Gruß, Axl

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

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

@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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.