在javascript函数中调用vbscript方法并传递参数

xiaya1986 2016-06-15 02:37:35
我只是想通过按钮触发vbs查询语句,于是现在html中调用JS 再调用VBS中的方法,但是发现传Id 的时候不能传参数,只能传数值进去。不知道有什么方法可以解决,或者有什么参数可以让VBS和JS进行共享,在JS中进行赋值,然后再VBS里使用


<%@LANGUAGE="VBSCRIPT" CODEPAGE="950"%>
<%
Function vbs(sn)
Dim detail
sql = "SELECT * FROM table1 WHERE id = " & sn

............

detail.MoveFirst
Do Until detail.EOF
vbs = detail.Fields.Item("name").Value
detail.MoveNext
Loop

detail.Close()
Set detail = Nothing

End Function
%>


function xx() {
var a = 61
alert("<%=vbs(a)%>"); //这样是错误的
alert("<%=vbs(61)%>"); //只能直接传值进去
}


<button type="button" class="btn btn-danger" onClick="xx()">Click</button>
...全文
2152 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaya1986 2016-06-16
  • 打赏
  • 举报
回复
引用 10 楼 slwsss 的回复:
post 的用request.form 或者 url:...?a=flag 然后判断有这个标记执行..
恩..其实我现在碰到的问题是,button1 我按下去对本页提交了post,但是button2按下去触发本页的vbscript的方法但是拿不到post的数据

$.ajax({
		url: '<%= Request.ServerVariables("SCRIPT_NAME") %>',
		type: "Post",
		async: false,
		data: {
			"vipSN": ModelInstance.sn()
		},
		sucess: function(result) {
			alert(result);
			alert("Update successful")
		},
		error: function(xhr){
			alert("Error occured during Ajax request, the error status is: " + xhr.status);
		}
	});

<%

function vbs(sn)
Dim detail
Dim detail_numRows

Dim aa
Set aa = Request.Form("vipSN") //在这里并没有拿到数据,是不是因为页面没有刷新,拿不到post出来的数据?

Set detail = Server.CreateObject("ADODB.Recordset")
detail.ActiveConnection = MM_dbconn_STRING
detail.Source = "SELECT * FROM vip WHERE sn=" & sn

detail.CursorType = 0
detail.CursorLocation = 2
detail.LockType = 1
detail.Open()

detail_numRows = 0

detail.MoveFirst
Do Until detail.EOF
	vbs = detail.Fields.Item("vip_name").Value
	vbs = aa & "aa"
	detail.MoveNext
Loop

detail.Close()
Set detail = Nothing


end function
%>
slwsss 2016-06-15
  • 打赏
  • 举报
回复
post 的用request.form 或者 url:...?a=flag 然后判断有这个标记执行..
xiaya1986 2016-06-15
  • 打赏
  • 举报
回复
引用 8 楼 slwsss 的回复:
if request.q..(vipSN)<>null .....exec vbs ...response.end
引用 6 楼 xiaya1986 的回复:
好像现在这么写vipSN永远都拿不到,需要重定向到带参数的链接上,是不是Post也是一样的道理?
slwsss 2016-06-15
  • 打赏
  • 举报
回复
if request.q..(vipSN)<>null .....exec vbs ...response.end
引用 6 楼 xiaya1986 的回复:
xiaya1986 2016-06-15
  • 打赏
  • 举报
回复
引用 5 楼 slwsss 的回复:
是的,get post都可以 输出返回值给js就行
发现一个问题,如果用Get的话也没需要重定向到 ***.asp?vipSN=10 这样vbs的方法才能得到参数,因为我是在同一个页面里,所以需要导航到带参数的链接才可以,至于post 我不太清楚是不是也是相同的原理
xiaya1986 2016-06-15
  • 打赏
  • 举报
回复
引用 5 楼 slwsss 的回复:
是的,get post都可以 输出返回值给js就行
我这样写,但在怎么去调VBS的方法啊?这样写好像没起作用

function xx() { 
$.ajax({
		url: '<%= Request.ServerVariables("SCRIPT_NAME") %>',
		type: "Post",
		async: false,
		data: {
			"vipSN": ModelInstance.sn()
		},
		sucess: function() {
			alert("Update successful")
			alert("<%=vbs()%>"); //这么调好像没起作用
		},
		error: function(xhr){
			alert("Error occured during Ajax request, the error status is: " + xhr.status);
		}
	});
}

function vbs()
Dim detail
Dim detail_numRows
dim aa
aa = Request.QueryString("vipSN")

vbs = aa

end function
slwsss 2016-06-15
  • 打赏
  • 举报
回复
是的,get post都可以 输出返回值给js就行
xiaya1986 2016-06-15
  • 打赏
  • 举报
回复
引用 3 楼 slwsss 的回复:
都在一个页面里也可以用ajax
你是指直接把参数get到url里,vbs在用过request拿到里面的参数?
slwsss 2016-06-15
  • 打赏
  • 举报
回复
都在一个页面里也可以用ajax
xiaya1986 2016-06-15
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
用ajax调
用Ajax 调vbscript中的方法?我这里的情况是vbs js html 都在一个asp文件中
slwsss 2016-06-15
  • 打赏
  • 举报
回复
用ajax调
网页自由打印控件使用方法功能:本控件可以在浏览器直接实现任意定位打印;用途:适用于B/S系统的报表打印,尤其适用于票据打印和套打;现在这个新编写的DLL控件比以前发布的OCX更稳定使用前,先注册一下,运行目录下的“注册控件.bat”即可注册然后在网页直接调用卸载时运行“反注册控件.bat”使用方法:在网页可以直接用JavaScriptVBScript调用被控件JavaScript调用语句:TML = new ActiveXObject("TML.TMLi");VBScript调用语句:set TML=CreateObject("TML.TMLi") ‘创建对象,DLL库名为TML,其TMLi为对象控件包含两个函数addTXT "作者,字体,字号,X坐标,Y坐标,文字"p dmPaperWidth文档宽,dmPaperLength文档长addTXT语句为添加文字到打印文档,参数有"作者,字体,字号,X坐标,Y坐标,文字"p语句为打印函数,格式:dmPaperWidth文档宽,dmPaperLength文档长以下为完整的VBScript打印程序:(查看源代码) <script language="vbscript">set TML=CreateObject("TML.TMLi") ‘创建对象,DLL库名为TML,其TMLi为对象TML.addTXT "李天盟,华文宋,24,100,200,额外认为" ‘本addTXT语句为添加文字到打印文档TML.addTXT "李天盟,华文宋,12,110,300,额外认为" ‘格式为"作者,字体,字号,X坐标,Y坐标,文字"TML.addTXT "李天盟,华文宋,12,120,320,┏━━━━━━━━━━━━━━━━┓"TML.addTXT "李天盟,华文宋,12,120,325,┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ "TML.p 3000,2000 ‘语句p为打印函数,格式:dmPaperWidth文档宽,dmPaperLength文档长set TML=nothing

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧