webForumDet fria alternativet
Logga in / Bli medlem

Blinkande meddelande efter submit till databas.

JavaScript

29 svar · 858 visningar · startad av devotion · sida 2 av 2

Trådstarten, av devotion

: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

Läs hela trådstarten →
Medlem sedan dec. 20025 483 inlägg
#21

I if (++c == 2) kan du ändra '2' till det antal blinkningar du vill ha.

'1000' = 1 sekund anger hur lång tid det är mellan de gånger lagret visas. '500' = 0,5 sekunder anger efter hur lång tid lagret skall döljas, efter varje visning. :)

Medlem sedan jan. 20013 582 inlägg
#22

Hej igen... :)

Det var som du sa i ett inlägg, att funktionen:

disableelements(taskForm);

hindrar...

Hur kan man lösa det:

<script type="text/javascript">
function disableelements(f){
	var elms = f.elements,
	len = elms.length;
	for (var i = 0; i < len; ++i){
		elms[i].disabled=true;
	}
	taskForm.taskStatus.disabled = false;
	taskForm.updateTask.disabled = false;
	return true;
}

<%
dim upd
upd = Request.QueryString("update") & ""
If upd = "yes" 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 %>
</script>

...

If session("iStatus") > 0 And session("iStatus") < 4 Then
	Response.write "<body onload=""disableelements(taskForm);"">"
Else
	Response.write "<body>"
End If		

...

If request.querystring("update")= "yes" then
	response.write "<div id=""mu"">Uppdraget har uppdaterats!</div>"
End if
Medlem sedan dec. 20025 483 inlägg
#23

Så här kanske:

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 %>
<% If session("iStatus") > 0 And session("iStatus") < 4 Then %>
  disableelements(taskForm);
<% End If %>
}

Response.write "<body>"

:)

Red./ Postar en alternativ lösning också:

var c = 0, mu;

window.onload = function(){
  mu = document.getElementById("mu");

  // time until first message is shown
  window.setTimeout("mu.style.visibility = 'visible'; blnk()", 200);
}

function blnk(){
  if (c++ == 2){
    mu.style.visibility = "hidden";
    return;
  }

  // the time a message is shown
  window.setTimeout("mu.style.visibility = 'hidden'", 1000);

  // this time - above time, is the time between each message
  window.setTimeout("mu.style.visibility = 'visible'; blnk()", 2500);
}
Medlem sedan jan. 20013 582 inlägg
#24

Den var ju fin...

Nu ser min kod ut så här och den fungerar klockrent... nästan :)

window.onload = function(){
<%
dim upd
upd = Request.QueryString("update") & ""
If upd = "yes" then %>
	var c = 0, mu;
	
	  mu = document.getElementById("mu");
	
	  // time until first message is shown
	  window.setTimeout("mu.style.visibility = 'visible'; blnk()", 200);
	}
	
	function blnk(){
	  if (c++ == 2){
		mu.style.visibility = "hidden";
		return;
	  }
	
	  // the time a message is shown
	  window.setTimeout("mu.style.visibility = 'hidden'", 1000);
	
	  // this time - above time, is the time between each message
	  window.setTimeout("mu.style.visibility = 'visible'; blnk()", 2500);
	<% 
end if 
If session("iStatus") > 0 And session("iStatus") < 4 Then %>
  disableelements(taskForm);
<% End If %>
}

Det är bara:

disableelements(taskForm);

som spökar lite

allt disablas ju inte, inte listmenyn för uppdragsstatus och inte submitknappen...

Tanken är ju att listmenyn för uppdragsstaus ska bestämma när formulärelementen är disablade..

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#25

Men allt skrivs ut som det skall ovan? Vad är taskForm?

Red./ Tittade i en av dina bifogade filer och det verkar som att du anropar funktionen med namnet på formuläret. Det kanske fungerar i IE, men du borde göra så här istället:

disableelements(document.forms.taskForm);

:)

Medlem sedan jan. 20013 582 inlägg
#26

lägger ut de aktuella filerna..

Mvh
henrik

Medlem sedan dec. 20025 483 inlägg
#27

Hepp! :)

Medlem sedan jan. 20013 582 inlägg
#28

x(
Ny fil....

Medlem sedan dec. 20025 483 inlägg
#29

. :)

Medlem sedan jan. 20013 582 inlägg
#30

Man måste ju gör wf-anden glad också!

Den här tråden utvecklades till ett virrvarr, då jag försökte få ihp olika funktioner och hålla reda på olika variablers värden...

Själva ursprungsfrågan löstes dock ganska snabbt med hjälp av Peter S! Resten kunde härledas till andra problem med min kod...

Så, för att få ett blinkande meddelande efter det att databasen har uppdaterats kan man göra så här:

var c = 0, mu;

window.onload = function(){
  mu = document.getElementById("mu");

  // time until first message is shown
  window.setTimeout("mu.style.visibility = 'visible'; blnk()", 200);
}

function blnk(){
  if (c++ == 2){
    mu.style.visibility = "hidden";
    return;
  }

  // the time a message is shown
  window.setTimeout("mu.style.visibility = 'hidden'", 1000);

  // this time - above time, is the time between each message
  window.setTimeout("mu.style.visibility = 'visible'; blnk()", 2500);
}

...

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

Tack för all hjälp Peter S! :birp

Mvh
henrik

271 ms totalt · 4 externa anrop · v20260731065814-full.81e7e81c
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)