Hej, jag blir inte klok på detta... Hum. Du måste använda ASP för att läsa av det du skickar. Det går inte att göra med javascript, om du inte lägger allt i urlen (ex menu.asp?user=McZeeke&pwd=lalala). Tack, Men...jag tycker det är underligt att jag kan uppdatera den ena ramen, men inte den andra. Jag kom på vad jag gjort för fel. Det funkar när jag returnerar true eller false till mina "onClick" och lägger in url i formtaggen.Uppdatera 2 ramar
Jag har ett formulär med textfält för username och password + en knapp för inloggning.
I login-knappen anropar jag en javascriptfunktion där jag kollar så att värdena stämmer och isåfall öppnar en asp-sida i en annan ram och skickar med värden med url-strängen dit. Detta funkar.
Men - jag vill också ändra i den ram där formuläret är - så att en logga-ut-knapp visas istället. Men det funkar inte...
Så här ser mina javascriptfunktioner ut:
<script language="javascript">
<!--
function logIn()
{
//If correct username and password
if (document.log.user.value == "McZeeke" && document.log.password.value == "6n3anj")
{
//redirects to main page, as logged in
parent.frames[3].location.href = "main.asp?login=yes&id=Home";
//reloads menu frame
self.location.href = "menu.asp?logout=yes";
}
}
function logout()
{
//End the session
'<%Session.Abandon%>'
//reload the menu frame
parent.frames[2].location.href = "menu.asp";
}
-->
</script>
Och så här ser min kod i formuläret ut:
<form name="log" method="post" enctype="text/plain" action="">
<tr valign="bottom">
<td bgcolor="#999966" align="center">
<%
If logout = "yes" Then
%>
<input type="submit" value="Logga ut" name="logout" id="logout" onClick="logOut();">
<%
Else
%>
Admin
<br>
<input type="text" size="12" name="user">
<br>
<input type="password" size="12" name="password">
<br>
<input type="submit" value="Logga in" name="login" id="login" onClick="logIn();">
<%
End If
%>
<p>
</td>
</tr>
</form>
Vad är felet?
När jag skriver ut en alert för att kolla vilken sida som är laddad i menyramen efter att jag gjort "self.location.href = "menu.asp?logout=yes" så står det bara "menu.asp". Varför anropas inte menu.asp med värdena?
Sv: Uppdatera 2 ramar
Testa följande istället för ditt javascript:
<script language="javasript">
<%if request.form("user") = "McZeeke" AND request.form("password") = "6n3anj" then%>
parent.frames[3].location.href = 'main.asp?login=yes&id=home';
self.location.href = "menu.asp?logout=yes"
<%end if%>
</script>
Nu borde det funka, om jag har förstått vad du är ute efter...
Detta är dessutom väldigt mycket säkrare än att skriva ut användarnamn och lösenord rakt i koden.
Lycka till!
Björn
Sv:Uppdatera 2 ramar
Men var lägger jag det scriptet? Om jag lägger det i min javascript-funktion så hamnar jag där direkt, utan att först ha klickat på logga-in-knappen och då får jag kompileringsfel eftersom inget username eller password skrivits in än.Sv: Uppdatera 2 ramar
function logIn()
{
if(document.out.user.value == "McZeeke" && document.out.password.value == "6n3anj")
{
alert("Nu är jag inne!");
parent.main.location.href = "main.asp?login=yes&id=Home";
parent.main.location.reload();
self.location.href = "menu.asp?log=in";
self.location.reload();
}
}
I funktionen här ovanför så laddas main-ramen om och de parametrar jag satt för login och id skickas med. Men för den ramen jag står i (self) så laddas sidan om, men länken blir "menu.asp?log=out", vilket innebär att jag aldrig får fram min Logga ut-knapp... Jag begriper inte hur det kan komma sig!! Hjälp!!
Jag har slängt ut sidan här:
bb.domaindlx.com/AnnaCecilia/
Sv:Uppdatera 2 ramar
<script language="JavaScript">
<!--
function logIn()
{
if(document.out.user.value == "McZeeke" && document.out.password.value == "6n3anj")
{
parent.frames[3].document.location = "main.asp?login=yes&id=Home";
parent.frames[3].document.location.reload();
return true;
}
return false;
}
function logOut()
{
parent.frames[3].document.location = "main.asp?login=no&id=Home";
parent.frames[3].document.location.reload();
return true;
}
-->
</script>
<tr valign="bottom">
<td bgcolor="#999966" align="center">
<%
'If not logged in
If Request.QueryString("log") = "out" Then
%>
<!--form submits if true is returned from logIn() -->
<form name="out" method="post" action="menu.asp?log=in">
Admin
<br>
<input type="text" size="12" name="user">
<br>
<input type="password" size="12" name="password">
<br>
<input type="submit" value="Logga in" name="login" onClick="return logIn();">
</form>
<%
Else
'If logged in
%>
<!--form submits if true is returned from logOut()-->
<form name="in" method="post" action="menu.asp?log=out">
<input type="submit" value="Logga ut" name="logout" onClick="return logOut();">
</form>
<%
End If
%>
</td>
</tr>