webForumDet fria alternativet

Blinkande meddelande efter submit till databas.

29 svar · 858 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

:e God jul!

Kan man göra något litet script som lägger en textruta över websidan efter det att formuläret skickats och datat skrivits till databasen?

Dvs

-Klicka på submit
-Datat skickas till db
-Scripåt startar och visar textruta med text "Uppdraget har uppdaterats!" 2 ggr
-slut

Mvh
henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#2

God Jul! :bire

På sidan i action-attributet:

<script>
window.onload = function(){
  var mu = document.getElementById("mu"),
      c  = 0,
      t  = window.setInterval(function(){
	if (++c == 2){ window.clearInterval(t) }
	mu.style.visibility = "visible";
	window.setTimeout("mu.style.visibility = 'hidden'", 500);
	  }, 1000);
}
</script>

<style>
#mu{
  background-color: #eee;
  border          : 1px solid #777;
  height          : 100px;
  font-size       : 18px;
  left            : 50%;
  margin-left     : -175px;
  margin-top      : -100px;
  padding-top     : 35px;
  position        : absolute;
  text-align      : center;
  top             : 50%;
  visibility      : hidden;
  width           : 300px;
}
</style>

<div id="mu">Uppdraget har uppdaterats!</div>
devotionMedlem sedan jan. 20013 582 inlägg
#3

Hejsan! :)

Vet inte om jag gjort fel, men rutan visas hela tiden... :(

Sidan är en asp-sida som har både formulär och "databaskod" på samma sida. (använder If request.("submitknapp") <> "" then...)

ska jag lägga någon kod vid formuläret eller submitknappen eller något annat? Nu har jag bara lagt in den rakt av s a s...

Mvh
Henrik

devotionMedlem sedan jan. 20013 582 inlägg
#4

devotion skrev:

Hejsan! :)

Vet inte om jag gjort fel, men rutan visas hela tiden... :(

Jo givetvis hade jag ju gjort fel....

Hade lagt lagt in

<div id="mu">Uppdraget har uppdaterats!</div>

Fel...

Nu funkar det så att det blinkar när sidan laddas om efter inserten...

Problemet är bara att det blinkar när jag går till sidan. Dvs laddar formuläret...

Mvh
henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#5

Jag skulle göra så här:

if request("submitknapp") <> "" then
  ' skriv ut javascript-delen i <head>
end if

' i <body>
if request("submitknapp") <> "" then
  ' skriv ut <div>:en
end if

:)

devotionMedlem sedan jan. 20013 582 inlägg
#6

Tja :)

' i <body>
if request("submitknapp") <> "" then
' skriv ut <div>:en
end if

Det fixar jag... men hur menar du méd det andra

if request("submitknapp") <> "" then
' skriv ut javascript-delen i <head>
end if

mvh
henrik

devotionMedlem sedan jan. 20013 582 inlägg
#7

hmm, tror jag fattar vad du menar... har nog ätit för mycket julmat...

**testar**

Mvh
henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#8

På liknande sätt som med <div>:en

<head>
<% if request("submitknapp") <> "" then %>
<script>
window.onload = function(){
  var mu = document.getElementById("mu"),
      c  = 0,
      t  = window.setInterval(function(){
	if (++c == 2){ window.clearInterval(t) }
	mu.style.visibility = "visible";
	window.setTimeout("mu.style.visibility = 'hidden'", 500);
	  }, 1000);
}
</script>

<style>
#mu{
  background-color: #eee;
  border          : 1px solid #777;
  height          : 100px;
  font-size       : 18px;
  left            : 50%;
  margin-left     : -175px;
  margin-top      : -100px;
  padding-top     : 35px;
  position        : absolute;
  text-align      : center;
  top             : 50%;
  visibility      : hidden;
  width           : 300px;
}
</style>
<% end if %>
</head>

:)

devotionMedlem sedan jan. 20013 582 inlägg
#9

hmmm...

Nu har jag lagt in:

<% If request("updateTask") <> "" then %>
	window.onload = function(){
	  var mu = document.getElementById("mu"),
		  c  = 0,
		  t  = window.setInterval(function(){
		if (++c == 2){ window.clearInterval(t) }
		mu.style.visibility = "visible";
		window.setTimeout("mu.style.visibility = 'hidden'", 500);
		  }, 1000);
	}
<% End If %>

och

If request("updateTask") <> "" then
	response.write "<div id=""mu"">Uppdraget har uppdaterats!</div>"
End if

Men det visas ingenting vid uppdatering...

Mvh
henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#10

Jag bifogar ett exempel. Öppna index.html och submitta formuläret. :)

devotionMedlem sedan jan. 20013 582 inlägg
#11

hmmmmm
Ditt exempel funkar ju finfint... grrr..... ;)
skickar oxå en fil....

Får inte till det....

Henrik

devotionMedlem sedan jan. 20013 582 inlägg
#12

hmmm...

Kan det vara den här raden som spökar...

Response.redirect "Task.asp"

Mvh
henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#13

Det kan bero på att du i body.onload har

disableelements(taskForm);

Testa den bifogade filen. :)

devotionMedlem sedan jan. 20013 582 inlägg
#14

hmmm nix

om jag däremot tog bort:

'Response.redirect "Task.asp"

På rad 304 då funkade det fint....

Men jag vill ju ha en omladdning av sidan för att ladda de senaste värdena från db... hur att göra?

Mvh
Henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#15

Testa att ta bort den raden och

	window.onload = function(){
	  var mu = document.getElementById("mu"),
		  c  = 0,
		  t  = window.setInterval(function(){
		if (++c == 2){ window.clearInterval(t); [b]location.reload();[/b] }
		mu.style.visibility = "visible";
		window.setTimeout("mu.style.visibility = 'hidden'", 500);
		  }, 1000);
	}
devotionMedlem sedan jan. 20013 582 inlägg
#16

hehe, det blir alltid sådana maratontrådar...

Det fungerar så pass att meddelandet kommer och fönstret laddas om... Men sen kommer meddelandet:

Den här sidan kan inte uppdateras autan att informationen skickas igen...
-Försök igen- -Avbryt-

Sen hamnar den i vinkelvolten och bara laddar om, laddar om, laddar om, laddar om....

Mvh
henrik

devotionMedlem sedan jan. 20013 582 inlägg
#17

nähä.. nu får det vara nog för den här gången....
Får inte till det...
gonatt!

Mvh
henrik

devotionMedlem sedan jan. 20013 582 inlägg
#18

Hej! :)

Ny dag nya möjligheter... ;)

Jag har gjort så här nu och det fungerar "nästan"

	window.onload = function(){
<% If session("iStatus") > 0 And session("iStatus") < 4 Then %>
	  disableelements(taskForm);
<% End If %>
<% If request("updateTask") <> "" then %>
	  var mu = document.getElementById("mu"),
		  c  = 0,
		  t  = window.setInterval(function(){
		if (++c == 2){ window.clearInterval(t); [B]parent.frames['mainFrame'].location.href='task.asp';[/B]}
		mu.style.visibility = "visible";
		window.setTimeout("mu.style.visibility = 'hidden'", 500);
		  }, 1000);
<% End If %>
	}

Att det bara fungerar "nästan" är följande:

-jag gör en uppdatering, meddelandet visas, de nya värdena i formuläret visas dock inte på en gång då dessa inte har något "minne". i nästa ögonblick så uppdateras dock sidan och de nya värdena läses från databasen...

Det är mest en kosmetisk fråga, men det är inte så "snyggt" jag vill ju inte ha det där mellanledet.... Det blev ju inte så när jag körde response.redirect....

Några ideer...

Kanske skulle få till "minnesfunktionen" för formulärfälten istället....

Mvh
Henrik

Peter SMedlem sedan dec. 20025 483 inlägg
#19

Du kanske kan visa meddelandet efter det att task.asp laddats den sista gången. Använd din ursprungliga kod med response.redirect och skicka med en querystring-variabel - typ response.redirect "task.asp?update=yes". Sedan:

	window.onload = function(){
<% 
dim upd
upd = Request.QueryString("update") & ""
If upd = "yes" then %>
	  var mu = document.getElementById("mu"),
		  c  = 0,
		  t  = window.setInterval(function(){
		if (++c == 2){ window.clearInterval(t) }
		mu.style.visibility = "visible";
		window.setTimeout("mu.style.visibility = 'hidden'", 500);
		  }, 1000);
<% End If %>
	}
devotionMedlem sedan jan. 20013 582 inlägg
#20

Hopp! :)

Nu så!

Nu verkar det fungera så som det är tänkt....

Jag bifogar filen om du ser något konstigt kan du väl hojta till!

Förresten hur styr jag "blinkningen" dvs hur många ggr det ska blinka och tiderna den visas?

Mvh
henrik

132 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)