webForumDet fria alternativet

Problem med RemoteScripting.

4 svar · 232 visningar · startad av SilvioF

SilvioFMedlem sedan juni 2000547 inlägg
#1

Tjenare. Nu hoppas jag på ett någorlunda snbbt svar för jag har suttit med det här hela dagen (är hemma och sjuk).

Det är så att jag har gett mig på att försöka lite RemoteScripting, men det är inte alltid det vill funka som jag vill.

[b]test.asp[/b]
<HTML>
	<HEAD>
		<TITLE>remote1.htm</TITLE>
	  <link href="../css/public.css" rel="stylesheet" type="text/css">
	</HEAD>
	<BODY>
		<script language="JavaScript" src="../_Scriptlibrary/rs.htm"></script>
		<script language="JavaScript">RSEnableRemoteScripting("../_Scriptlibrary");</script>
		<form name="remote1">
			Username:<input type="text" name="uName" value="">
			<input name="btnGetUsername" type="button" id="btnGetUsername" value="Get username" onClick="chkUsername('getUsername', document.forms[0].uName.value);">
			<input name="btnClear" type="button" id="btnClear" value="rensa  statusfält" onClick="document.all['returnValue'].innerHTML = '';">
			<br>
			<SCRIPT LANGUAGE="javascript">
				var serverURL = "remote1.asp";
				
				function myCallBack(co)
				{
					document.all['returnValue'].innerHTML = co.return_value;
				}
				
				function chkUsername(uName)
				{
					var co = RSExecute(serverURL, uName, myCallBack);
				}
			</SCRIPT>
			<div id="returnValue" name="returnValue"></div>
		</form>
	</BODY>
</HTML>
[b]remote1.asp[/b]
<%@ LANGUAGE="VBSCRIPT" %>
<% RSDispatch %>
<!--#INCLUDE file="../_ScriptLibrary/rs.asp"-->
<SCRIPT RUNAT="SERVER" Language="javascript">
	function Description()
	{
		this.getUsername = Function("uName", "return checkUserName(uName)");
	}
	public_description = new Description();
</script>
<%
function checkUserName(uName)
	set conn=server.CreateObject("ADODB.Connection")
	myconn = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("../db/com.mdb") & ";"
	conn.open myconn

	strSQL = "SELECT uName FROM tblUsers WHERE uName = '" & uName & "'"

	Set rstTemp = conn.Execute(strSQL)
	
	If rstTemp.EOF Then
		'checkUserName = "alert('Ledigt användarnamn'); return true;"
		checkUserName = strSQL
	Else
		checkUserName = "alert('Användarnamnet är upptaget.\nVälj ett annat.'); document.forms[0].uName.focus(); return false;"
	End If

	rstTemp.Close
	Set rstTemp = nothing
	conn.Close
	Set conn = nothing
end function
%>

Funktionen skall användas för att kontrollera ifall ett användarnamn är upptaget redan innan man postar formuläret, allt för att slippa ladda om sidan.

Jag har en liknande sida, som funkar fint, som ingår i registreringen där man får välja ett län och sedan fyller jag en listbox med tillhörande kommuner i det länet. Denna sida fungerar som sagt var alldeles utmärkt.

Men nu till mitt problem:
Det verkar inte som om jag får med något värde då jag anropar funktionen checkUserName(uName) om jag anropar den via RemoteScripting på test.asp. Det funkar däremot alldeles utmärkt om jag anropar den, utan javascript, på remote1.asp-sidan.

Är det någon som är insatt i detta ämne och kan hjälpa mig. Det är säkerligen något simpelt fel jag har gjort, men jag kan inte se det.

Tyvärr så finns det ingen "demo"-sida att surfa in på eftersom jag nyligen har konfigurerat upp min brandvägg ordentligt och jag orkar inte pilla upp allting på webbhotellet riktigt än (det blir lätt en massa skräpfiler kvar där då).

nikoMedlem sedan juni 20022 599 inlägg
#2

chkUsername tar en parameter i prototypen:

function chkUsername(uName)

men två när du anropar den:

chkUsername('getUsername', document.forms[0].uName.value);

Borde inte funka så bra ..?

SilvioFMedlem sedan juni 2000547 inlägg
#3

Danke schöne. Du ledde mig in på rätt spår i alla fall.

SilvioFMedlem sedan juni 2000547 inlägg
#4

Nähä, jag får inte till det i alla fall. Men nu så får jag i alla fall in ett värde i sql-strängen, vilket jag inte fick förut.

Nu så vill den inte visa värdet (co.return_value) på test.asp istället.

SilvioFMedlem sedan juni 2000547 inlägg
#5

Har löst det nu.

Fic ktill det så att värdet returnerades ordentligt och en koorekt if-sats i javascript (hade använt = istället för ==). :/

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