Avatar billede terra Nybegynder
19. maj 2003 - 00:23 Der er 28 kommentarer og
1 løsning

Hente en ASP variabel til JavaScript ?

Er det noen som kan hjelpe her?
<HTML>
<HEAD>

var name =  <% var_asp_name %>

<script type="text/JavaScript">
alert(name);
</script>
</HEAD>
Avatar billede roenving Novice
19. maj 2003 - 00:26 #1
Er det det her du mener ;-)

<script type="text/JavaScript">
var name =  <% var_asp_name %>

alert(name);
</script>
Avatar billede medions Nybegynder
19. maj 2003 - 00:30 #2
<HTML>
<HEAD>

var name =  "<% var_asp_name %>"

<script type="text/JavaScript">
alert(name);
</script>
</HEAD>

Sådan skal dit se ud!

//>Rune
Avatar billede medions Nybegynder
19. maj 2003 - 00:30 #3
HTML>
<HEAD>

<script type="text/JavaScript">
var name =  "<% var_asp_name %>";

alert(name);
</script>
</HEAD>

sorry, sådan der!

//>Rune
Avatar billede roenving Novice
19. maj 2003 - 00:32 #4
>>Rune -- kunne du ikke se mit spm ?-)
Avatar billede medions Nybegynder
19. maj 2003 - 00:33 #5
Hmm jov, men dit svar ville kun virke hvis han bruger Integerværdier, så jeg tænkte han nok oxo ville ha' String versionen ;o)

//>Rune
Avatar billede roenving Novice
19. maj 2003 - 00:37 #6
???

Så det vil sige, at konklusionen må være: man skal inden man overfører variable vælge om det er et tal eller en tekst, for via indsættelse med

<% var_asp_name %>

indsættes den værdi, som asp hiver ud af sin variabel ...

Bemærk iøvrigt, at det ikke kun gælder for integers ...
Avatar billede roenving Novice
19. maj 2003 - 00:39 #7
-- såvidt jeg ved bruger de sprog, som asp kan bruge samme talformat, så

1986

641.0238

3.87887e+02

forstås ens ...
Avatar billede medions Nybegynder
19. maj 2003 - 00:40 #8
roenving> Lad os tage et eksempel:

<%
  var_asp_name = "Rune"
%>
<script type="text/JavaScript">
var name =  <% var_asp_name %>

alert(name);
</script>

Dette ville melde en fejl i JavaScriptet da outputtet ville komme til at se således ud:

<script type="text/JavaScript">
var name =  Rune;

alert(name);
</script>

Derfor ville flg. være mere rigtig:

<script type="text/JavaScript">
var name =  "<% var_asp_name %>";

alert(name);
</script>

Da outputtet ville være:

<script type="text/JavaScript">
var name =  "Rune";
alert(name);
</script>

Håber du forstår!=?

//>Rune
Avatar billede roenving Novice
19. maj 2003 - 00:43 #9
Som jeg skrev ...

Man må vælge ...

Iøvrigt mener jeg ikke der ville komme en fejlmeddelelse, men alert'en ville indeholde teksten:

undefined

;-)
Avatar billede medions Nybegynder
19. maj 2003 - 00:46 #10
agh, nu er det vidst at gå i små sko! -jeg ville da kalde en box med et rødt kryds i hvor der står name is undefined for en fejlmeddl.!

Nå, jeg vil i seng...

//>Rune
Avatar billede roenving Novice
19. maj 2003 - 00:57 #11
Nå, men jeg måtte jo lige checke -- der kom _ikke_ andet end meddelelsen om at der var en script-fejl (i status-linjen) -- hvad der sker hvis den slags meddelelser er slået fra gad jeg godt nok ikke undersøge

-- så skyd den mand, han har ret ;-)
Avatar billede terra Nybegynder
19. maj 2003 - 02:00 #12
Kom ikke lengre her, den enten blir forkert , "<% var_asp_name %>" eller undefined,
skal vis bruke request("name") for at hente i HTML dok
(?) Any ideas?
Avatar billede medions Nybegynder
19. maj 2003 - 07:38 #13
roenving> *G*

terra> Hvad mener du nu? Hvis du bruger Request.QueryString("name") så henter du værdien Rune ud af denne URL www.medions.dk/default.asp?name=Rune

//>Rune
Avatar billede edutasia Nybegynder
19. maj 2003 - 10:31 #14
<script type="text/JavaScript">
  var strName = '<%=Request("name")%>';
  alert(strName);
</script>
Avatar billede terra Nybegynder
20. maj 2003 - 16:32 #15
Grrrr ... %!
Setter opp points til 60, snart tilbage.
Avatar billede terra Nybegynder
20. maj 2003 - 16:55 #16
medions ->>
Jeg ser at i ASP bruger den i recordset når den sriver ind til db:

rs.addnew
rs("et_navn") = request("name")

// Den bruger ikke: Request.QueryString("name")

Da bør den skrive likedan ind i:

var et_navn = (name); // det rette navn ? Korrekt?
// Terra (?)
Avatar billede mortrr Praktikant
20. maj 2003 - 20:41 #17
Er du ude efter at hente en html-sides argumenter i javascript, uden brug af asp?

<script language="javascript">
QS=document.location.search;
QS=QS.substr(1);
QS=QS.split("&");
for (i=0;i<QS.length;i++)
  QS[i]=QS[i].split("=");

// QS indeholder nu en række arrays med argument navn og værdi.

for (i=0;i<QS.length;i++) {
  if (QS[i].length>1) {
    eval("var "+QS[i][0]+"='"+QS[i][1]+"';");
  } else {
    eval("var "+QS[i][0]+"=false;");
  }
}
</script>
Avatar billede terra Nybegynder
20. maj 2003 - 23:30 #18
mortrr -> Du kan være inne på noe her :)

// Prøver med denne men... se komment -> nedenfor
QS=document.location.search;
QS=QS.substr(1);
QS=QS.split("&");
for (i=0;i<QS.length;i++)
  QS[i]=QS[i].split("=");

// QS indeholder nu en række arrays med argument navn og værdi.

for (i=0;i<QS.length;i++) {
  if (QS[i].length>1) {
    eval("var "+QS[i][0]+"='"+QS[i][1]+"';");
  } else {
//    eval("var "+QS[i][0]+"=false;");
// Denne linjen ovenfor forventer identifikator (?);
// Hva er det ?
  }
}
Avatar billede mortrr Praktikant
21. maj 2003 - 00:02 #19
Der skal lige tilføjes et check på om QS[i][0] overhovedet indeholder noget.

QS=document.location.search;
QS=QS.substr(1);
QS=QS.split("&");
for (i=0;i<QS.length;i++)
  QS[i]=QS[i].split("=");

// QS indeholder nu en række arrays med argument navn og værdi.

for (i=0;i<QS.length;i++) {
  if (QS[i].length>1) {
    eval("var "+QS[i][0]+"='"+QS[i][1]+"';");
  } else {
    if (QS[i][0]!="") {
      eval("var "+QS[i][0]+"=false;");
    }
  }
}
Avatar billede mortrr Praktikant
21. maj 2003 - 00:11 #20
Hvis du vil teste den, så kan du bruge:
for (i=0;i<QS.length;i++) {
  if (QS[i].length>1) {
    eval("var "+QS[i][0]+"='"+QS[i][1]+"';");
  } else {
    if (QS[i][0]!="") {
      eval("var "+QS[i][0]+"=false;");
    }
  }
  eval('alert("variablen '+QS[i][0]+' har værdien "+'+QS[i][0]+')');
}

Den nederste eval vil vise navnene på de variabler der er oprettet, og værdierne der ligger i dem.
Avatar billede mortrr Praktikant
21. maj 2003 - 01:06 #21
Eval'en skal selvfølgelig heller ikke køres hvis QS[i][0]==""

for (i=0;i<QS.length;i++) {
  if (QS[i].length>1) {
    eval("var "+QS[i][0]+"='"+QS[i][1]+"';");
  } else {
    if (QS[i][0]!="") {
      eval("var "+QS[i][0]+"=false;");
    }
  }
  if (QS[i][0]!="") {
    eval('alert("variablen '+QS[i][0]+' har værdien "+'+QS[i][0]+')');
  }
}
Avatar billede terra Nybegynder
22. maj 2003 - 01:31 #22
-> mortrr henter den ifra href? Jeg spørger fodi at det er =0 der.

Jeg har et oppsett i ASP som jeg prøver at skrive om til HTML.
Den ASP'n skriver en HTML dok og setter ind variabler overført ind fra en form via HTTP-GET. Jeg ser at den setter ind rett i recordset:
rs("record_name") = request("name")
dvs.: skriver ind et -> name isteden for ("name") i ASP før <HTML></HTML>.
Det jeg prøver på er: at sette ind denne variblen i en JS var og
bruge denne i en ny form i HTML.

Jeg har prøvd alt ovenfor.
Terra
Avatar billede mortrr Praktikant
22. maj 2003 - 02:14 #23
Altså - du ved der er en name=davs i querystring.
siden.htm?name=davs
Og den vil du gerne have lagt ind i en formular?

Så behøver man ikke gøre det helt så vanskeligt, men den samme kan stadig bruges.
Som du selv er inde på, så dur det selvfølgelig ikke hvis variablen som bruges også er i href'en.

Eksempel, hvor variablene er lavet lidt om:
<script>
arrQS=document.location.search;
arrQS=arrQS.substr(1);
arrQS=arrQS.split("&");
for (intQS=0;intQS<arrQS.length;intQS++)
  arrQS[intQS]=arrQS[intQS].split("=");
// arrQS indeholder nu en række arrays med argument navn og værdi.

// opret default værdier til querystring variablene.
var name="";
var i="";

// overfør querystring til javascript variable.
for (intQS=0;intQS<arrQS.length;intQS++) {
  if (arrQS[intQS][0]!="") {
    if (arrQS[intQS].length>1) {
      eval("var "+arrQS[intQS][0]+"='"+arrQS[intQS][1]+"';");
    } else {
      eval("var "+arrQS[intQS][0]+"='';");
    }
  }
}
function docInit() {
  document.fTest.inpName.value=name;
  document.fTest.inpI.value=i;
}
</script>
<body onload="docInit()">
<form name="fTest">
<input type="text" name="inpName" value="">
<br><input type="text" name="inpI" value="">
</form>
</body>

Kald siden med fx:
siden.htm?name=Hejsa&i=123
Avatar billede mortrr Praktikant
22. maj 2003 - 02:18 #24
Men dit oprindelige spørgsmål gik på hvordan man overførte variable fra asp til javascript, og her er metoden den som andre har beskrevet:

En streng:
<%
ASPVariabel=Request("QSnavn")
%>
<script>
var JSVariabel="<%=ASPVariabel%>";
</script>

Et tal:
<%
ASPVariabel=Request("QSnavn")
%>
<script>
var JSVariabel=<%=ASPVariabel%>;
</script>
Avatar billede terra Nybegynder
22. maj 2003 - 18:55 #25
-> mortrr
Meget takk for en detaliert forklaring, men det nærmeste jeg kommer til er en text som skrives ind: <%=name%>
Altså jeg prøvet at lave en reint *.html dok ikke *.asp her fordi at jeg kjører på Unix.
Denne ASP'n som skal skrive ind ligger på et andet server, men skal tillate externe brugere.
Kan problemet ligge her?
Avatar billede mortrr Praktikant
22. maj 2003 - 19:22 #26
Hvis det ikke er asp, så kan du ikke bruge <%=name%> til noget.
Så er du nødt til at bruge den anden metode med et client-side javascript.

Man kan godt få en asp-implementering til unix, men den er lidt begrænset. Chilisoft. Men hvor man finder den på sun's site, er et godt spørgsmål.

Du kunne eventuelt bruge php. Det minder om asp, men sproget er anderledes.
Lidt javascript agtigt.
Avatar billede terra Nybegynder
22. maj 2003 - 20:27 #27
mortrr ->
Det er altså et spørgsmål om jeg kan få det til at korrespondere sammen hvis jeg går over til et andet server-side en ASP.
Perl blir stadig mere utbredt på WIN platform.
Håper at det kommer likedan med ASP i den andre retningen en dag ;).

Jeg kan ikke bruge den client-side fordi scriptet skriver om siten og viser den i st: http://domene.co/folder og det er lite at hente der.

Et lite spørgsmål til først når vi er inde på ASP:
åbnes det alltid default.asp når det er kun http://domene.co/folder?
setter in <!-- #include file=../andet.asp --> den ASP biten som findes i: 'andet.asp'?

Takker meget for godt hjælp og fosøg på at hjelpe fra andre deltagere her. Selvom vi konkluderte at det går ikke så mener jeg at
mortrr fortjener disse points for hjælpen hvis han besvarer disse to spørgsmål ovenfor. Håper at jere andre har ikke noe imot det og er enige i det.
Legg ind dit svar mortrr.

Ha en fin kveld,
MVH Terra.
Avatar billede mortrr Praktikant
22. maj 2003 - 22:09 #28
Om det er default.asp eller index.asp eller terra.asp, bestemmes af indstillingerne på det enkelte site.
Som standard er der default.asp


Ja - <!--#include file="../andet.asp"--> vil hente andet.asp og indsætte den i den fil det står i. Om du kan bruge ../ afhænger af om web-serveren tillader parent-paths. Det indstilles på "applikations-konfigurationen" for sitet.
En anden mulighed er at bruge <!--#include virtual="/andet.asp"--> som henter filen ud fra sitets struktur, i modsætning til file=, som henter filen ud fra biblioteks-strukturen.
Avatar billede terra Nybegynder
22. maj 2003 - 22:27 #29
Takk til alle som var med :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester