Avatar billede george Nybegynder
06. januar 2006 - 21:24 Der er 21 kommentarer og
1 løsning

popup der fortæller at recorden slette i DB'en mens den slettes

Jeg har et link, på en side, som sletter en post i en database. Filen der sørger for det er som i kan se ”RedigerSletDeltager.asp”. Som i også kan se er der lavet lidt JavaScript som åbner et vindue, i det vindue står der ”sletter deltager”, men vinduet er et nyt browservindue (openSubWin) og det ville jeg gerne lave om så det er et layer der popper og viser beskeden og efter x antal sekunder forsvinder igen for herefter at reloade den side hvor jeg har ”slet” linket på, så man med det samme kan se at den deltager er slettet.

Er der nogel der kan fortælle mig hvordan jeg får koden skruet sammen så jeg viser laget i f.eks 2 sek. imens sletter deltageren fra databasen og herefter fjerner laget og til sidst reloader den siden jeg kom fra, der hvor jeg klikket på "slet" ?

Her er linket jeg klikker på for at slette deltageren:
<a href="RedigerSletDeltager.asp?mode=slet&id=<%=row%>" onClick="return openSubWin(this.href)">Slet</a>

Her er koden der styrer lagende :
<style type="text/css">
body    { font-family: Verdana, arial, helvetica, sans-serif; 
    font-size:12px; margin:20px; padding:0 }
h1    { font-size:16px }   
h2    { font-size:14px }
a:link { color:#33c }   
a:visited { color:#33c }   
@media all {
    h1,    h2, p { margin:0 0 .8em 0 }
}

/* Include id's for all your layers here, with commas between.
    Set width, left and top */
#lyr2 { position:absolute; visibility:hidden;
    left:370px; top:250px; width:400px; z-index:100 }
</style>

<script type="text/JavaScript">
<!--
var cur_lyr;    // holds id of currently visible layer
function swapLayers(id) {
  if (cur_lyr) hideLayer(cur_lyr);
  showLayer(id);
  cur_lyr = id;
}

function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
}

function hideLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "hidden";
}

function getElemRefs(id) {
    var el = (document.getElementById)? document.getElementById(id): (document.all)? document.all[id]: (document.layers)? document.layers[id]: null;
    if (el) el.css = (el.style)? el.style: el;
    return el;
}
-->
</script>
Avatar billede george Nybegynder
06. januar 2006 - 21:31 #1
Skulle måske lige sige at jeg godt kan finde ud af at få laget til at poppe op ved at skrive følgende linje :
<a href="RedigerSletDeltager.asp?mode=slet&id=<%=row%>" onClick="showLayer('lyr2'); return false">Slet</a>, men ikke kan finde ud af at få det skruet rigtigt sammen så der er en pause på eks. 2 sekunder før laget forsvinder igen med hideLayer('lyr2'); return false
Avatar billede roenving Novice
10. januar 2006 - 01:06 #2
function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
  setTimeout("hideLayer(" + id + ")",2000);
}
Avatar billede george Nybegynder
10. januar 2006 - 23:01 #3
Ja hvor svært kan det være ;-) Når man lige ved hvordan man skal gøre.

nu mangler jeg "bare" at siden med mit link hvor jeg kom fra "reloader" når laget forsvinder. Ved du hvordan man gør det ?

Jeg har denne stump kode, men den skal ligge i body'en og det kommer jo ikke til at virke da jeg ikke forlader den oprindelige side når laget forsvinder.

Her er koden:  onUnload="opener.location.reload(true);"
Avatar billede roenving Novice
11. januar 2006 - 14:01 #4
Så reload den, når du viser den:

function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
  opener.location.reload(true);
  setTimeout("hideLayer(" + id + ")",2000);
}
Avatar billede george Nybegynder
11. januar 2006 - 20:32 #5
Jeg får følgende fejl : 'opener.location' in null or not an object
Avatar billede george Nybegynder
12. januar 2006 - 00:08 #6
function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
  setTimeout("hideLayer(" + id + ")",2000);
}
Denne første kode du skrev til mig virker ikke. Laget forsvinder ikke efter 2 sek.
Avatar billede roenving Novice
12. januar 2006 - 15:06 #7
Gaab, der manglede et par gnyffer, og fordi IE funker som den gør, skaber den sig heller ikke, selvom den burde:

function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
  setTimeout("hideLayer('" + id + "')",2000);
}
Avatar billede george Nybegynder
12. januar 2006 - 16:41 #8
Det virker! Du er en stjerne.

Hvordan skal "opener.location.reload(true);" så se ud, for det virker ikke når jeg sætter denne linje ind i funktionen. Laget forsvinder ikke.
Avatar billede roenving Novice
12. januar 2006 - 16:48 #9
Er det ikke en popup ?-)
Avatar billede george Nybegynder
12. januar 2006 - 18:41 #10
Jo ?
Avatar billede george Nybegynder
12. januar 2006 - 18:43 #11
Men laget skulle jo gerne forsvinde efter 2 sek. samtidig med at den side jeg kom fra skulle reloade.
Avatar billede roenving Novice
13. januar 2006 - 14:04 #12
Hvis den siger at opener.location er null eller ikke et objekt, så findes der ikke et modervindue, der har åbnet popuppen ...

-- for øvrigt popup hvordan ?-)

En der er åbnet med window.open eller window.createPopup ...
Avatar billede george Nybegynder
13. januar 2006 - 14:39 #13
Den åbner en <Div id='lyr2'> Kode </Div>

Så ligger den her kode længere nede :
<Div id="lyr2">
    <table align="center" border="0" cellpadding="0" cellspacing="0">
    <tr>           
    <td valign="top" width="200" height="80" style="font-family: verdana, geneva, arial, helvetica, sans-serif; font-size: 13px; color: #000000; font-weight: normal; background-image:url(../images/action.gif);"></td>
    </tr>
    </table>
</Div>

Det er ikke et nyt browservindue der åbner.

Håber det er til at forstå ellers må du lige sige til.
Avatar billede roenving Novice
13. januar 2006 - 15:03 #14
-- så bare fjern opener. !-)
Avatar billede george Nybegynder
13. januar 2006 - 20:24 #15
Det hjælper desværre ikke. Ingen popup og bare en reload af den side jeg er på.
Avatar billede roenving Novice
13. januar 2006 - 23:38 #16
Hvis siden reloades vil der jo ingen reference til tidligere handlinger være ...
Avatar billede george Nybegynder
14. januar 2006 - 01:21 #17
Nej, men hvorfår kommer popup vinduet ikke frem ?

function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
  setTimeout("hideLayer('" + id + "')",2000);
  location.reload(true);
}

Det skulle da vises i 2 sek. og så skulle siden reloades.
Avatar billede roenving Novice
14. januar 2006 - 02:07 #18
Så skal du måske:

function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
  setTimeout(function(){hideLayer(id),2000);location.reload(true);},2000};
}

-- absolut utestet, så der skal måske også laves en lokal variabel !-)
Avatar billede george Nybegynder
14. januar 2006 - 11:28 #19
Nej desværre ;-( Den skriver "Object Expected"
Avatar billede roenving Novice
15. januar 2006 - 04:31 #20
Hov, jeg var da også lidt for søvnig ...

function showLayer(id) {
  var lyr = getElemRefs(id);
  if (lyr && lyr.css) lyr.css.visibility = "visible";
  setTimeout(function(){hideLayer(id);location.reload(true);},2000};
}
Avatar billede george Nybegynder
15. januar 2006 - 10:27 #21
For stadig samme fejl. "Object Expected". Fejlen kommer nu, bare jeg flytter min mus hen over linket.
Avatar billede george Nybegynder
19. januar 2006 - 20:11 #22
Hmm... lukker spørgsmålet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester