på min sida "main.asp" har jag en knapp som heter "spara": Jag brukar lägga window.close() längst ner i den mottagande sidan (i ditt fall saveValues2db.asp). Vet inte om det är bäst och numera använder jag sällan (aldrig) popupfönster. Ja, detta borde ju funka för att spara&avsluta, men Men säg att vi MÅSTE återvända till main.asp för att göra ngt annat, och inte vill skicka med massa parameterar för att berätta vad det är vi ska göra... Nu förstår jag inte riktigt hur du menar, men det går ju exempelvis att använda sessionsvariabler och köra en redirect till main.asp... t ex Du skulle kunna skicka värdena som en session eller göra en lite onödig lösning. Du skickar parametrarna till tex main eller en annan sida. Sedan då allt är som ska göras i den sidan är klar använder du response.redirect("main.asp"). det känns som att det inte riktigt funkar med den metod som jag föreslog, utan att använda parameterar/sessioner...!? ASP-koden körs ju på servern innan sidan skickas till webbläsaren... så att få ASP-kod att "fortsätta exekveras" så måste en ny sida exekveras på servern och skickas till webbläsaren. okej, såhär då.. Ok, har jag förstått dig rätt? Användaren klickar på ett datum för att aktivera redigering i en div/input, skriver in ett värde men klickar inte sen på spara utan klickar på en annat datum? såsom du skrivit är så jag löst problemet tillfälligt.... jamen, första-sidan skall ju ändå laddas om med "parametrar" (=querystring)... så varför inte posta sidan (spara värdena i databasen) och längst ner på spara-sidan så körs en redirect till första-sidan med aktuella "parametrar"??? jo, självklart går det att göra så.. Om man inte behöver någon bekräftelse på att saker faktiskt har sparats så kan man låta asp-sidan retunera "no change" i headern, eller något sådant. Då stannar webbläsaren kvar på samma sida. Ett exemple ser ut något sånt här:utföra 2 momemnt sekventiellt
<INPUT onClick="location.href='saveValues2db.asp?value1=100&value2=200'" value="spara">
när användaren trycker på denna skickas han till en annan sida där värdena skrivs in i databasen och sen returneras tillbaka till main.asp.
Nu vill jag ist ha en annan knapp som heter spara&avsluta.
<INPUT onClick="location.href='saveValues2db.asp?value1=100&value2=200';window.close();" "spara&avsluta">
Denna knapp skall göra samma sak som den innan, fast med skillnaden att efter att man returnerats så ska fönstret stängas...Alt skall ngt annat hända..
Hur läser man detta bäst?
Är det bättre att öppna saveValues2db.asp i en popup-fönster o sen stänga denna när den är klar?
ska man infoga saveValues2db.asp i main.asp i form av en sunrutin/funktion ist??
hur skulle ni ha löst detta???
Jag kör ASP, VBS och JS... mot access..
(svårt att sätta en bra rubrik på detta inlägg)Sv: utföra 2 momemnt sekventiellt
Sv:utföra 2 momemnt sekventiellt
Tex:
<INPUT onclick="location.href='saveValues2Db.asp'; alert('Nu jävlar är det klart!!!!');" value="spara&bekräfta">
Hur gör man då utan popup?Sv: utföra 2 momemnt sekventiellt
<code>
' saveValues2Db.asp
<%
' ...
' ...
Session("Message") = "Nu jävlar är det klart!!!!"
Response.Redirect("main.asp")
%>
' main.asp
<%
If Session("Message")<>"" Then
%>
<script type="text/javascript">
<!--
alert('<%=Session("Message")%>');
-->
</script>
Session("Message") = ""
<%
End If
%>
</code>Sv:utföra 2 momemnt sekventiellt
Men känns som att det går att lösa lite snyggare med sessionsSv: utföra 2 momemnt sekventiellt
Jag försöker lösa detta så dynamiskt som möjligt, så alert() var mer ett exempel. Det jag försöker göra är lite mer komplicerat. Vill inte heller låsa mig på ngt sätt.
Det verkar som att öppna en popop, spara värdena i dbn, o sen döda popupen är enda sättet att få koden att fortsätta exekvera där den var innan popupen öppnades.
tex i
<INPUT onClick="location.href='saveValues2db.asp?value1=100&value2=200';alert('KLART!!');" "spara&bekräfta">
Då ska alltså dialogrutan med "Klart!" komma upp EFTER Att sidan har sparats.
Eller kommer ngn på ngt annat sätt?Sv:utföra 2 momemnt sekventiellt
På klientsidan så kan du exekvera klientbaserat javascript men skall värden från en form sparas i en databas så antar jag att det måste ske via serverbaserat skript.
Jag förstår fortfarande egentligen inte var det är du vill ska exekveras "efteråt"... och vad anledningen är... Sv: utföra 2 moment sekventiellt
jag håller på med en tidrapporteringssida som ser ut som en tabell, med in, lunch & uttider m.m.. (inmatningssida)
Man kan klicka på dagens datum, så laddas sidan om och DIV elementen som innehåller siffror omvandlas till <INPUT type=text....>så att man man redigera värdena.
ngt is stil med:
<TD id="inTD">
<%if request.querystring("editDay") =wd then%>
<INPUT id="In_<%=ant%><%=wd%>" name="InTid">
<%else%>
<DIV id="In_<%=ant%><%=wd%>"><%=stmplTidArr(0)%></DIV>
<%end if%>
Användaren MÅSTE trycka på spara-knappan så att värdena sparas (vid klick på spara-knappan skickas formuläret vidare till en annan sida, där värdena sparas. sedan skickas man tillbaka till inmatningssidan igen).
Men om han klickar på en annan dag så försvinner de inställningar han gjort, då sidan laddas om och editDay sätts till dagens "id" (wd)
Det går säkert att lösa detta på annat sätt så att man inte behöver trycka spara innan man ändrar dag, eller att skicka med parameterar som säger vad som ska hända när man återvänder till inmatningsssidan osv, men jag vill gärna hitta en lösning på ju detta problemet innan jag skriver om all kod.
Detta är en mkt förenklad verison av koden.
är det omöjligt att göra databas-modifieringarna i ett popup-fönster? popupfönstret behöver inte ens vara synligt för användaren så den ska öppnas, göra sitt o sen stängas direkt.
varför verkar annars alla vara så emot det? är det pga att vissa webläsare blockerar popups?Sv:utföra 2 moment sekventiellt
Det jag i så fall skulle göra är att kolla om redigeringsläget är aktivt och i så fall låta en confirm-ruta hoppa upp som frågar om användaren vill spara det ändrade värdet... typ:
<code>
onClick="if confirm('Vill du spara innan du byter dag?') location.href='save_data' else location.href='reload_this_page';"
</code>
nu är jag inte helt säker på att det funkar exakt som jag skrivit, men du kanske förstår hur jag har tänkt... 'save_data' och 'reload_this_page' får du byta ut till det som är det rätta i din applikation.
Ett alternativ är att alltid spara värdet när användaren klickar på ett nytt datum... blir kanske mer användarvänligt när jag tänker efter...
<b>varför verkar annars alla vara så emot det? är det pga att vissa webläsare blockerar popups?</b>
Jepp... är väl den största orsaken...Sv: utföra 2 moment sekventiellt
"Ett alternativ är att alltid spara värdet när användaren klickar på ett nytt datum... blir kanske mer användarvänligt när jag tänker efter..."
det är PRECIS detta jag VILL göra.. och för att göra det måste jag först kalla på sidan som sparar värdena, för att sedan byta dag....
vill helst lösa detta utan att skicka med parameterar, o då komemr jag inte på ngt annat än att exekvera saveSidan utan att lämna den sida jag är på.... på ngt sätt....Sv:utföra 2 moment sekventiellt
Sv: utföra 2 moment sekventiellt
men jag försöker alltid krångla till saker och ting genom att välja den svåraste lösningen.. och med dynamiska....
Din lösning fungerar utmärkt om man ska ladda om en annan sida, men inte om du efter första "sparandet" vill exekvera tex en Javascript funktion eller dyl.. Då verkar enda lösingen vara att inte "lämna" den sida man är på, dvs spara värdena i en popup som öppnas och stängs... Sv:utföra 2 moment sekventiellt
Sv:utföra 2 moment sekventiellt
<%@language="VBScript" %><%
Option Explicit
Dim con
Dim cmd
Set con = CreateObject("ADODB.Connection")
con.Open ""
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = con
cmd.CommandText = "INSERT INTO TabellNamn (Kolumn)" + vbCrLf + _
"VALUES (?)"
cmd.Parameters.Append cmd.CreateParameter('osv...
cmd.Execute
con.Close
Response.Status = "204 No Content"
Response.End
%>
Nackdelen är att användaren inte kommer få någon synlig bekräftelse att det sparats.
Man skulle kunna visa en alert bog i knappen som skickar sidan.
Om användaren avbryter operationen innan servern mottaget det kommer inte förändringen att genomföras.
HTTP standarden säger:
<info>The server has fulfilled the request but does not need to return an entity-body, and might want to return updated
metainformation. The response MAY include new or updated metainformation in the form of entity-headers, which if
present SHOULD be associated with the requested variant.
If the client is a user agent, it SHOULD NOT change its document view from that which caused the request to be
sent. This response is primarily intended to allow input for actions to take place without causing a change to the user
agent’s active document view, although any new or updated metainformation SHOULD be applied to the document
currently in the user agent’s active view.
The 204 response MUST NOT include a message-body, and thus is always terminated by the first empty line after
the header fields.
</info>