Toon posts:

[VBScript 5.6] Waarden van ComboBox uitlezen.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het ontwerpen van een Informatie Database in HTML in combinatie met VBScript (5.6) voor op een Intranet. Nu wil een dynamische HTML pagina op zetten (zonder gebruik te maken van ASP/PHP/CGI).

In deze pagina laat ik een ComboBox van een Form vullen met bestandsnamen die hij inleest vanuit een aangewezen directory. Dat werkt perfect, maar nu wil dat als ik op een item klik dat hij de waarde van de ComboBox uitleest naar een variabele die hij direct mee neemt naar een andere procedure binnen het programma. (Dmv een OnClick/OnChange routine) Hier loop ik vast.

Ik krijg met geen mogelijkheid de geselecteerde waarde uit de ComboBox. De code die ik tot dusver heb gebruikt is het volgende:

Script.vbs:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Sub OpenTextFileRead(File)
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile(File, ForReading, True)
   msgbox f.Readline
   f.Close
End Sub

Sub cbxQuestion_OnChange()
   msgbox "Test"
   'OpenTextFileRead("C:\Info Websites\Test\Homemade\Source\Route 200x - " & cbxQuestion.value & ".Info")
End Sub

Function ShowFolderList(folderspec)
   Dim fso, f, f1, fc, s, i, Check, FileRead
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
   Set fc = f.Files
   s="<HTML><SCRIPT Language='VBScript' SRC='script.vbs'></SCRIPT><FORM><B>Select Question:</B><BR><SELECT id='cbxQuestion' NAME='cbxQuestion'>  "
   For Each f1 in fc
      if mid(f1.name,len(f1.name)-4,5) = ".Info" then
          i=1
          Check = ""
          while i <> len(f1.name) and Check <> "-"
              i=i+1
          Check = mid(f1.name,i,1)
          wend
          i=i+2
          s = s & "<OPTION> " & mid(f1.name,i,len(f1.name)-i-4)
      end if
   Next
   s= s & "</SELECT></FORM><BR><IFRAME SRC='./Target_Frame.html' NAME='ifrmAnswer'></IFRAME></HTML>"
   document.write s
End Function

Sub Document_Initialize
   ShowFolderList("C:\Info Websites\Test\Homemade\Source\")
End Sub


Infobase.HTML:
Visual Basic .NET:
1
2
3
4
5
6
<HTML>
<SCRIPT Language="VBScript" SRC="script.vbs">
</SCRIPT>
<BODY OnLoad="Document_Initialize()">
</BODY>
</HTML>


Na het openen van de pagina wordt de code van de Infobase.HTML omgezet in het volgende:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
<HTML>
<SCRIPT Language='VBScript' SRC='script.vbs'>
</SCRIPT>
<FORM>
<B>Select Question:</B><BR>
<SELECT id='cbxQuestion' NAME='cbxQuestion'>
<OPTION> 1 - He's asking for a network file
<OPTION> 2 - Crashed before displaying the map
<OPTION> 3 - The program doesn't print at all (Epson Stylus Color)</SELECT>
</FORM>
<BR>
<IFRAME SRC='./Target_Frame.html' NAME='ifrmAnswer'></IFRAME>
</HTML>


Ik weet dat mogelijk het hele programma op z'n kop gezet moet worden voor dat ik het op kan lossen, maar kan iemand mij nog een (paar) tip(s) geven? (sorry voor de te brede Post)

Verwijderd

Het gaat je ook niet lukken om die waarde uit te lezen zonder een submit van het form naar een server, waar vervolgens de response bestaat uit een geparsde pagina.

Verwijderd

gebruik Javascript
altijd beter dan VBscript :D

Verwijderd

Topicstarter
Ben ik niet helemaal mee eens Jasperde_Lange... ;-)

Ik heb ondertussen al geprobeert om via een Submit de gegevens uit te lezen, maar aangezien ik geen gebruik kan maken van ASP/PHP/CGI kan ik deze gegevens alleen naar een mail adres sturen...

Misschien nog een andere mogelijkheid? Ik sta open voor alles...

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Kijk eens of je hier iets aan hebt.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<html>
<head>
<script type="text/javascript">
function put()
{
option=document.forms[0].dropdown.options[document.forms[0].dropdown.selectedIndex].text
txt=option
document.forms[0].favorite.value=txt
}
</script>

</head>
<body>

<form>
<p>
Select your favorite browser:
<select name="dropdown" onchange="put()">
<option>Internet Explorer
<option>Netscape Navigator
</select>
</p>
<p>
Your favorite browser is:
<input type="text"
name="favorite" value="Internet Explorer">
</p>
</form>

</body>
</html>

Verwijderd

Sorry, Shlizar, vergeten dat je geen ASP mag gebruiken, anders pass je die zooi gewoon door..., ik weet helaas geen andere oplossing, je hebt ook wel veel beperkingen als je geen ASP/PHP e.d. kunt gebruiken, maar iig veel succes ;)

Verwijderd

Topicstarter
Het is inmiddels gelukt... Ik heb een gedeelte van de code die robjanssen heeft gepost. Dit is de code die ik tot dusver af heb:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub OpenTextFileRead(File)
   msgbox "Open File : " & File
   <!-- BreakPoint Here -->
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile(File, ForReading, True)
   msgbox f.Readline
' ifrmAnswer.document.write = f.readline
   f.Close
End Sub

Function ShowFolderList(folderspec)
   Dim fso, f, f1, fc, s, i, Check, FileRead
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
   Set fc = f.Files
   FileRead = "OpenTextFileRead('C:\Info Websites\Test\Homemade\Source\Route 200x - ' & cbxQuestion.value & '.Info')"
   s="<HTML><SCRIPT Language='VBScript' SRC='script.vbs'></SCRIPT><FORM><B>Select Question:</B><BR><SELECT NAME='dropdown' OnChange='OpenTextFileRead(document.forms[0].dropdown.options[document.forms[0].dropdown.selectedIndex].text)'>  "
   For Each f1 in fc
      if mid(f1.name,len(f1.name)-4,5) = ".Info" then
          i=1
          Check = ""
          while i <> len(f1.name) and Check <> "-"
              i=i+1
          Check = mid(f1.name,i,1)
          wend
          i=i+2
          s = s & "<OPTION> " & mid(f1.name,i,len(f1.name)-i-4)
<!--          s = s & "<BR>"  -->
      end if
   Next
   s= s & "</SELECT></FORM><BR><IFRAME SRC='./Target_Frame.html' NAME='ifrmAnswer'></IFRAME></HTML>"
   document.write s
   'ShowFolderList = s
End Function

Sub OpenTextFileWrite(File)
   Const ForReading = 1, ForWriting = 2, ForAppending = 8
   Dim fso, f
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.OpenTextFile(File, ForWriting, True)
   f.Write "Hello world!"
   f.Close
End Sub

Sub Document_Initialize
   ShowFolderList("C:\Info Websites\Test\Homemade\Source\")
End Sub


IK denk dat ik er voor de rest wel uit kan komen. Bedankt voor de moeite heren! _/-\o_
Pagina: 1