Avatar billede joeblack Nybegynder
14. februar 2009 - 15:45 Der er 21 kommentarer

Tegnet ; var ventet

Hej Eksperter !

Jeg har fundet et af Roenvings scripts til at hente lidt data til mig uf fra et valg i en select. Men jeg kan ikke få det til at virke :-(

Jeg får fejlen "Tegnet ';' var ventet" i linie xxx, tegn 6

Her er lidt af koden:

<select name='bolig' id='5' size='1' style='display: none; width: 167px;' class='qsinput' onChange="java script:loadFile('includes/GetBoligInfo.asp?BoligID='+this.value)">

Er der nogle, der kan bringe mig videre ?
Avatar billede joeblack Nybegynder
14. februar 2009 - 15:51 #1
uf=ud
Avatar billede keysersoze Ekspert
14. februar 2009 - 16:03 #2
denne funker fint hos mig;

<select name="bolig" id="5" size="1" class="qsinput" onchange="loadFile('includes/GetBoligInfo.asp?BoligID='+this.value);">
Avatar billede olebole Juniormester
14. februar 2009 - 16:07 #3
<ole>

For det første bruger man aldrig JavaScript pseudo-protokollen i en event-handler - og de steder, den giver mening, skal den staves i ét ord:
    onChange="java script:  <-- den dér

- men som keysersoze viser, skal den slet ikke bruges  =)

/mvh
</bole>
Avatar billede joeblack Nybegynder
14. februar 2009 - 16:08 #4
Er prøvet, uden held:
<select name='bolig' id='5' size='1' style='display: none; width: 167px;' class='qsinput' onchange="java script:loadFile('includes/GetBoligInfo.asp?BoligID='+this.value);">

Jeg skaber linien i ASP:

SelectBoliger = SelectBoliger + "<select name='bolig' id='" & rs("AfdelingID") &"' size='1' style='display: none; width: 167px;' class='qsinput' onchange=""java script:loadFile('includes/GetBoligInfo.asp?BoligID='+this.value);"">"

Andre ideer ?
Avatar billede keysersoze Ekspert
14. februar 2009 - 16:15 #5
så prøv at giv et link.
Avatar billede joeblack Nybegynder
14. februar 2009 - 16:21 #6
Undskyld - jeg havde ikke set detajlen. I er sgu skrappe !

Nu får jeg ingen fejl, men heller noget andet..

Scriptet er dette:

<script type='text/javascript'>
function loadFile(file)
{
  var scriptTag = document.getElementById('loadScript');
  var head = document.getElementsByTagName('head').item(0)
  if(scriptTag) head.removeChild(scriptTag);
  script = document.createElement('script');
  script.src = file;
  script.type = 'text/javascript';
  script.id = 'loadScript';
  head.appendChild(script)
}
</script>

og den loadede fil er denne:

<%@ LANGUAGE = "VBScript" %>
<%
Response.ContentType="text/js"
%>
<!-- #include file="connections/OpenConnRS.asp" -->
<%
Set OtherInfo = conn.Execute("SELECT by, (SELECT Boligtype FROM Boligtyper WHERE (Boligtyper.BoligtypeID = Boliger.BoligtypeID)) as Boligtype FROM Boliger WHERE BoligID = " + Request.QueryString("BoligID")) 'find boligen
'tag det første resultat - der bør ikke være mere end et.
'byTxt er feltet i din kode, hvor byen skal stå
%>
document.getElementById("Beliggende").value="<%=OtherInfo("Adresse")%>";
document.getElementById("Areal").value="<%=OtherInfo("Areal")%>";
document.getElementById("Boligtype").value="<%=OtherInfo("Boligtype")%>";
<%
conn.close
%>

- og så har jeg 3 input på siden, der gerne skulle fyldes ud;

<input type="text" id="Beliggende" name="Beliggende" size="20">
<br>
<input type="text" id="Areal" name="Areal" size="20">
<br>
<input type="text" id="Boligtype" name="Boligtype" size="20">

Kan i gennemskue, hvorfor det ikke virker ?
Avatar billede joeblack Nybegynder
14. februar 2009 - 16:24 #7
OK, så lige at der stod "SELECT by" - det felt har jeg slet ikke, så noget tyder på, at filen ikke køres, da jeg ingen fejl får.
Avatar billede olebole Juniormester
14. februar 2009 - 16:25 #8
Under alle omstændigheder skal du slette 'java script:' i din VBS-kode:

SelectBoliger = SelectBoliger + "<select name='bolig' id='" & rs("AfdelingID") &"' size='1' style='display: none; width: 167px;' class='qsinput' onchange=""loadFile('includes/GetBoligInfo.asp?BoligID='+this.value);"">"
Avatar billede joeblack Nybegynder
14. februar 2009 - 16:27 #9
Det er gjort og koden ser således ud (i browseren):
<select name='bolig' id='5' size='1' style='display: none; width: 167px;' class='qsinput' onchange="loadFile('includes/GetBoligInfo.asp?BoligID='+this.value);">

- og jeg får ingen JS-fejl mere.
Avatar billede keysersoze Ekspert
14. februar 2009 - 16:36 #10
så dvs det virker nu?
Avatar billede joeblack Nybegynder
14. februar 2009 - 16:46 #11
Ja og nej. Ingen js-fejl, men der sker ingenting ved valg i selecten...
Avatar billede olebole Juniormester
14. februar 2009 - 16:46 #12
soze >> det lugter af et svar fra dig  =)
Avatar billede olebole Juniormester
14. februar 2009 - 16:48 #13
Når du bruger:
    Request.QueryString("BoligID")

- skal du nok bruge:
    <select name='boligID'
Avatar billede olebole Juniormester
14. februar 2009 - 16:51 #14
- men jeg er i tvivl om din forklaring i http://www.eksperten.dk/spm/863884#reply_7326687
Avatar billede joeblack Nybegynder
14. februar 2009 - 16:51 #15
#12: Ja, svar endelig. Første del af opgaven er løst :-)

#13: Hmm, jeg kalder jo filen GetBoligInfo.asp?BoligID='+this.value

..men jeg tror slet ikke, at filen loades, da jeg ville få en fejl pga. fejl i SQL'en..
Avatar billede joeblack Nybegynder
14. februar 2009 - 16:53 #16
Skal jeg forklare, eller ?
Avatar billede keysersoze Ekspert
14. februar 2009 - 16:58 #17
Jeg forstår ikke helt - du siger at siden ikke kan loades men samtidig giver du et eksempel på hvordan koden ser ud i browseren?

Giv os et link, så er det lidt lettere at gennemskue.
Avatar billede joeblack Nybegynder
14. februar 2009 - 17:10 #18
Sorry, jeg har ikke været klar nok.

Jeg kan ikke linke - der kræves brugeradgang.

Jeg vil hente data i en db på baggrund af valget i en select.

Jeg har fundet et af Roenvings scripts til dette:

onchangen aktiverer scriptet (se #6)
Scriptet henter filen getboliginfo.asp
getboliginfo.asp (se også #6) henter data og udfylder de 3 inputs på siden med selecten med hentet data.

OK ?

Men der sker altså intet, når jeg vælger noget i selecten - ikke engang en fejlbesked...
Avatar billede olebole Juniormester
14. februar 2009 - 17:25 #19
Hvis ikke jeg husker forkert, kræver roenvings script, at alle data er til stede i dokumentet ved side-load. Det henter ikke data runtime
Avatar billede joeblack Nybegynder
15. februar 2009 - 10:14 #20
Go' formiddag

Olebole -> Formålet med loadfile(GetBoligData.asp?BoligID=x) er ellers at hente data runtime.

Jeg er absolut ingen js-ekspert, men burde Roenvings script ikke netop gøre dette:

<script type='text/javascript'>
function loadFile(file)
{
  var scriptTag = document.getElementById('loadScript');
  var head = document.getElementsByTagName('head').item(0)
  if(scriptTag) head.removeChild(scriptTag);
  script = document.createElement('script');
  script.src = file;
  script.type = 'text/javascript';
  script.id = 'loadScript';
  head.appendChild(script)
}
</script>

??
Avatar billede joeblack Nybegynder
15. februar 2009 - 17:22 #21
Skriver I et par svar, så vi kan få lukket ?
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