Can anyone help me to solve the problem, i want to pass the parameters between the javascript and asp.

<SCRIPT type="text/javascript" LANGUAGE="JavaScript">
<!--
function startWord(par_1)
{
var oShell = new ActiveXObject("Shell.Application");
var commandtoRun="C:\\Karan\\Automation.exe";
oShell.ShellExecute(commandtoRun, commandParms, "", "open", "1");
}
//-->
</script>
</head>
<body>
<form>
<input type="text" name="par_1" value="123">
<input type="button" value="Click me!" onclick="startWord(par_1)">
</form>
</body>
</html>

it's only open the vb.exe file, but how can i pass the parameters to this exe??

thank you for helping me~~~

Recommended Answers

All 10 Replies

Please use the forum's CODE tags when posting.

JavaScript runs on the client. ASP runs on the server. You cannot "pass" variables between them, per se.

The only time ASP runs is when a REQUEST is sent to the web server, either a GET or a POST.

The way you send values to an ASP form is by adding a QueryString to your GET Requests, or by populating form values for your POST Requests (or, "form submits").

Sorry for asking the wrong question.
Base on the above code, i can call the vb.exe program. Can i pass the parameters from javascript to vb.exe program???

I see. Well, you're passing in a value to the function, correct? Is that value you want to "pass" to the activeX object? I see you're executing the method with "commandParms", but you're never setting "commandParms" equal to anything. Should it contain the value you pass to the JavaScript function?

Okay, I'm going to assume that you want commandParms = "123".

<SCRIPT type="text/javascript" LANGUAGE="JavaScript">
<!--
function startWord(x)
  {
commandParms = document.getElementById(x).value;
   var oShell = new ActiveXObject("Shell.Application");
    var commandtoRun="C:\\Karan\\Automation.exe";
oShell.ShellExecute(commandtoRun, commandParms, "", "open", "1");
  }
  //-->
</script>
</head>
<body>
<form>
<input type="text" name="par_1" value="123">
<input type="button" value="Click me!" onclick="startWord('par_1')">
</form>
</body>
</html>

The error came out after added the "commandParms = document.getElementById(x).value;"
is the server not read this sentence??

No, the server wouldn't process that... it's JavaScript, which would run on the client.

Change name="par_1" in the input text element to id="par_1" .

Thank you for your help.

I use the alert sentence to check the value on getelelment, but the value is "NULL".

do it mean the value can't pass to the function???

I assure you this works. I have no idea what "getelement" means, sorry.

Here's the most simplified test version I can make for you:

<html>
<head>
<script type="text/javascript">
function startWord(x)
{
  var commandParms = document.getElementById(x).value;
  alert(commandParms);
}
</script>
</head>
<body>
<form>
<input id="txt" type="text" value="123" />
<input id="btn" type="button" value="Click" onclick="startWord('txt')" />
</form>
</body>
</html>

Thx a lot , i success la, thank you very much~~

if i want to pass two parameters, am i need to add one more text for another parameter??

That's completely up to you. You have enough now to learn the mechanism and finish it on your own.

Thank you for your helping.

As spoken, i want to pass two parameters to vb.exe. I tried to use the array for my passing parameters, but it don't work. I have no idea on that. Would you please to help me and give me some comment??

function startWord(x,y)
{
dim theStr(1)
var oShell = new ActiveXObject("Shell.Application");
var commandtoRun="C:\\Karan\\Email.exe";
var theStr(0) = document.getElementById(x).value;
var theStr(1) = document.getElementById(y).value;
oShell.ShellExecute(commandtoRun, theStr(), "", "open", "1"); 
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.