VBScript and CGI?

Here is a code fragment of a CGI script written in Visual Basic.
I'm trying to use HTML controls and embedded VBScript to combine the data
(integer) entered into a text box by the user with a choice (string) that
user has selected from a list box and place it into a second text box.
So far I've had no luck getting this to work.
The error message is:  Object required   "Accounts"
Perhaps a better question is: Can you use embedded VBS in a CGI script?


Send ("<INPUT TYPE= ""Text"" NAME=""Balance""  SIZE=""30"">")
Send ("<SELECT NAME=""Accounts"" SIZE=""8"">")
Send ("<INPUT TYPE= ""Text"" NAME=""Total"" SIZE=""45"">")

Send ("<INPUT TYPE=""Button"" NAME=""BTN"" VALUE=""Enter"">")

Send ("<Script Language=VBScript>")
Send ("Sub BTN_OnClick")
Send ("Total.Value =  Accounts.Value & Balance.Value")
Send ("End Sub")
Send ("</Script>")

Thanks
Tom
thomas73Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

icdCommented:
There really is no reason why any cgi generated HTML should behave any differently to pure HTML. (Although I do remember having some very subtle differences I don't think they will be affecting you).

The approach I would take when writing a CGI that generated HTML, especially where there is embedded script, is to first create a  'dummy' HTML file which has the required content. In your case this would be:-

<INPUT TYPE= "Text" NAME="Balance" SIZE="30">
<SELECT NAME="Accounts" SIZE="8">
<INPUT TYPE= "Text" NAME="Total" SIZE="45">

<INPUT TYPE="Button" NAME="BTN" VALUE="Enter">
<Script Language=VBScript>
  Sub BTN_OnClick
    Total.Value = Accounts.Value & Balance.Value
  End Sub
</Script>

Having tested this and getting it to work you can then look to 'cgi' it. In this way you don't end up testing everything together.

I suspect the problem will be found to not be the cgi but instead be the VBScript. In any case the problem will be easier to spot.

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
thomas73Author Commented:
Thank you for your response.
In my original posting. I did not make it clear that I had included the "Option Value" statements
in the <SELECT> tag. For example:
 <SELECT NAME="Accounts">
<OPTION VALUE="Individual Retirement Account">Individual Retirement Account
<OPTION VALUE="Qualified Retirement Plan">Qualified Retirement Plan
<OPTION VALUE="Individual">Individual
</SELECT>
I just wanted to clear this up and not have you waste your time considering a potential problem that did not exist.

I did as you suggested and removed the CGI 'SEND' statements from the HTML in order to isolate the problem. To narrow the possibilities further, I removed the reference to the "Accounts" Object (the List box) in the VBS Sub procedure, leaving the procedure to read; (Total.Value=Balance.Value). The code works properly in this fashion, transferring the value of the "Balance" text box to the "Total" text box.
Progress!
However, If the Sub procedure is written to include the "Accounts" Object and concatenate the values from the "Balance" text box and the "Accounts" List box; (Total.Value=Accounts.Value & Balance.Value), an error code results stating; "Object does not  support this property or method: "Accounts.Value".

This is were the problem seems to lie. Which attribute of the <SELECT> tag holds the users selection, NAME or VALUE? I have two books on VBScript and HTML that give me two different answers.
I guess you're the tie breaker.

Thanks
Tom

0
icdCommented:
Ah. It becomes clear.

The SELECT object does not have a value. It does have a 'selectedIndex' however. In Javascript to get the value of a SELECT object you would use the following:-

Accounts.options[Accounts.options.selectedIndex].value

I don't have the details for VBScript but I expect it will be very similar (if not identical).

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Scripting Languages

From novice to tech pro — start learning today.