Avatar billede lightbrain Nybegynder
26. maj 2002 - 13:17 Der er 16 kommentarer og
1 løsning

Skift mellem JS og VB

Hej, hvorfor kan følgende ikke lade sig gøre/hvordan kommer det til "at lade sig gøre"?

<html>
<head>
<script>
function IndsaetArtikel() {
     
    <% IndsaetValgt() %>
}
</script>
</head>

<body>

  <%
  function IndsaetValgt()
 
      response.write("Hurra!")

  end function
  %>   
   
</body>
</html>
Avatar billede a1a1 Novice
26. maj 2002 - 13:23 #1
ja sagtent...

asp'en kører jo før javascripten

(eller er det begge asp?), så kan man godt skifte imellem dem på samme side (men det anbefales ikke)
Avatar billede sunezapa Nybegynder
26. maj 2002 - 13:26 #2
1. du bør kende forskel på SUB og FUNCTION, og på hvordan du kalder dem.
2. du bør kende forskel på Server-side-scripts og Client-side-scripts
3. du skal angive om SCRIPT er VB eller javascript (Language=Javascript)
- blot en kommentar, jeg har ikke tid til mer lige nu ;-)
Avatar billede lightbrain Nybegynder
26. maj 2002 - 14:37 #3
Ok, men hvorfor siger den så: "';'" expected" ved linien <% IndsaetValgt() %>
______________________________________________________________
<html>

<head>

<script Language=Javascript>

function IndsaetArtikel() {
     
    //Her gøres en masse og bagefter...
    <% IndsaetValgt() %>

}
</script>

</head>

<body>

  <%
  function IndsaetValgt()
 
      response.write("Hurra!")

  end function
  %>
  <p><font face="Trebuchet MS">
    <input type="radio" value="IndsaetArtikel" name="ArtikelValg" onClick="self.IndsaetArtikel();" checked></font><font face="Trebuchet MS" size="2">Indsæt
    artikel</font></p>

</body>

</html>
Avatar billede a1a1 Novice
26. maj 2002 - 14:52 #4
har du prøvet med
<% IndsaetValgt(); %>
Avatar billede lightbrain Nybegynder
26. maj 2002 - 15:45 #5
>har du prøvet med <% IndsaetValgt(); %>
Ja, men så siger den - logisk nok - "Expected end of statement", fordi der bliver kaldt en VBscript funktion.

Jeg fatter stadig ikke hvorfor den siger: "; expected"
Avatar billede a1a1 Novice
26. maj 2002 - 15:57 #6
Prøv med <%= IndsaetValgt() %>

og

response.write("'Hurra!';")

når det nu er clientside javascript....:)
Avatar billede a1a1 Novice
26. maj 2002 - 15:58 #7
jeg troede du ville lave serverside jscript...:)
Avatar billede a1a1 Novice
26. maj 2002 - 15:58 #8
Hurra!

betyder jo variabelnavn NOT
Avatar billede lightbrain Nybegynder
26. maj 2002 - 16:10 #9
Nu kommer den ingen fejl-meddelse, men den skriver stadig ikke Hurra. Why?

_________________________________________________________________


<html>
<head>
<script Language=Javascript>

function IndsaetArtikel() {
     
    //Her gøres en masse og bagefter...
    <% IndsaetValgt() %>

}
</script>
</head>

<body>

  <%
  function IndsaetValgt()
 
      response.write("'Hurra!';")

  end function
  %>

  <p><font face="Trebuchet MS">
    <input type="radio" value="IndsaetArtikel2" name="ArtikelValg" checked><font size="2">skal
  ikke skrive noget</font></font></p>

  <p><font face="Trebuchet MS">
    <input type="radio" value="IndsaetArtikel" name="ArtikelValg" onClick="self.IndsaetArtikel();"><font size="2">skal
  skrive Hurra</font></font></p>

  <p>&nbsp;</p>

</body>
</html>
Avatar billede sunezapa Nybegynder
26. maj 2002 - 16:46 #10
Du kan da for fande da (sorry...) ikke forvente,
at et client-side script skal kunne eksekvere et server-side function-script ! 
Hvis du kigger i din HTML-kode (view source" kan du se din client-side function. Her er der ikke nogen funktion "indsaetValgt", for den ligger kun på serveren. Hvis du vil ha' skrevet noget HTML på clienten vha. javascript, så skal du bruge javascript, og ikke kalde en vb-script på serveren...
Avatar billede lightbrain Nybegynder
26. maj 2002 - 16:49 #11
sunezapa >>

Ok men så må du hjælpe mig, kender du et eksempel, hvor - når man trykker på en knap - aflæses dette og nogle andre knapper kommer til syne.
Avatar billede a1a1 Novice
26. maj 2002 - 16:50 #12
prøv med

response.write("document.write('Hurra!');")

:)
Avatar billede jakoba Nybegynder
27. maj 2002 - 18:42 #13
De andre har faktisk sagt det adskillige gange allerede: "clientside" og "serverside" er to helt forskellige steder.

alt det indeni ASP's <% og %> klammer er serverside og kun serverside

Javascript udenfor klammerne og som skrives med ASP er clientside og kun clientside.

Det serverside sker på serveren idet brovseren beder om at få sendt en side. Så kikker ASP fortolkeren på di .asp fil og udfører den kode der er indeni klammerne. Det omskriver filen til en ren clientside fil som så bliver sendt til browseren.

i browseren kan brugeren så klikke på knapper osv men hvis du vil have ASP til at tage sig af de klik kan det kun ske ved at du beder serveren om filen een gang til (med 'der blev klikket på ...* som parameter). Og det giver en mærkbart langsom respons for selv med adsl tager det ret lang tid at hente ny side fra serveren.

mvh JakobA
Avatar billede lightbrain Nybegynder
27. maj 2002 - 19:01 #14
jakoba >>
Ok, tak for forklaringen. Her kommer lige et side-spørgsmål. Hvorfor sætter du altid ";" bagefter selv "}" (kan jeg se i dine script-eksempler)
Avatar billede mikoalngelo Nybegynder
27. maj 2002 - 19:47 #15
Hej lightbrain, jeg har lige lavet den der kode du bad mig lave:::

<SCRIPT TYPE="text/javascript">
function CheckForSelectedIndeks(Sel){
    if (Sel.selectedIndex == 0){
        document.getElementById('Box1').style.visibility = 'visible'
        document.getElementById('Box2').style.visibility = 'hidden'
        document.getElementById('Box3').style.visibility = 'hidden'
    }
    else if (Sel.selectedIndex == 1){
        document.getElementById('Box1').style.visibility = 'hidden'
        document.getElementById('Box2').style.visibility = 'visible'
        document.getElementById('Box3').style.visibility = 'hidden'
    }
    else{
        document.getElementById('Box1').style.visibility = 'hidden'
        document.getElementById('Box2').style.visibility = 'hidden'
        document.getElementById('Box3').style.visibility = 'visible'
    }
}
</SCRIPT>

<DIV ID="BoxEN" STYLE="top:10;left:50;position:absolute;visibility:visible;"><SELECT onchange="CheckForSelectedIndeks(this)">
    <OPTION VALUE="Box1">1
    <OPTION VALUE="Box2">2
    <OPTION VALUE="Box3">3
</SELECT></DIV>

<DIV ID="Box1" STYLE="position:absolute;left:50;visibility:hidden;top:50;"><SELECT NAME="nr1">
    <OPTION>1
    <OPTION>2
</SELECT></DIV>
<DIV ID="Box2" STYLE="position:absolute;left:50;visibility:hidden;top:50;"><SELECT NAME="nr2">
    <OPTION>3
    <OPTION>4
</SELECT></DIV>
<DIV ID="Box3" STYLE="position:absolute;left:50;visibility:hidden;top:50;"><SELECT NAME="nr3">
    <OPTION>5
    <OPTION>6
</SELECT></DIV>

Den virker lidt bedre end den anden, der jo kun virkede når man gik OPAD i boxens værdier...
Avatar billede mikoalngelo Nybegynder
27. maj 2002 - 20:41 #16
Hovsa, det skulle da for resten have været et svar ;)
Avatar billede mikoalngelo Nybegynder
28. maj 2002 - 20:28 #17
Danke 4 points.
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
Kurser inden for grundlæggende programmering

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