VBScript 参数未从字典中获取匹配值
VBScript Parameter not getting matching value from Dictionary
词典不是 return 匹配我从 JavaScript 函数传递的 VB 脚本函数参数的值。
Javascript 将 prodid 值成功传递给 Vb 脚本函数,我也在 VB 脚本函数中读取了它,但是当我尝试从字典中获取值时,它 return没什么。
例如,如果我传递 prodid=1,然后它会被分配给 ProdcutId,但它不会从字典中获取 ProductId=1 的匹配值。
但我对 ProductId="1" 进行了硬编码,然后它将 return 来自字典的匹配值 apple。
当我在 GetProdcutName 中打印 ProductId 值时,它显示正确的值“1”。
经典ASP:
Public Function GetProductName(prodid)
Dim ProductId
Dim ProductName
ProductId = prodid
Dim dictproduct
Set dictproduct=Server.CreateObject("Scripting.Dictionary")
dictproduct.add "1","apple"
dictproduct.add "2","Samsung"
dictproduct.add "3","Blackberry"
ProductName =dictproduct.Item(ProductId)
GetProdcutName =ProductName
End function
JavaScript:
function ProductName()
{
var prodcutid=document.getElementById('prodcutList').value ;
var productname ='<%=GetYodleeProviderCode("' + prodcutid + '")%>';
}
修复您发布的代码中的拼写错误(产品的拼写)后,将 prodid
强制为字符串应该可以解决您的问题:ProductId = CStr(prodid)
。这应该等同于您将 1 硬编码为“1”时的尝试。
Public Function GetProductName(p_iProdId)
Dim sProductId
Dim sProductName
sProductId = "P" & Trim(CStr(p_iProdId))
Dim dictProducts
Set dictProducts = Server.CreateObject("Scripting.Dictionary")
dictProducts.Add "P1", "apple"
dictProducts.Add "P2", "Samsung"
dictProducts.Add "P3", "Blackberry"
sProductName = dictProducts.Item(sProductId)
GetProductName = sProductName
End Function
您在分配 return 值时似乎拼错了函数名称("c" 和 "u" 颠倒了)。应该是:
GetProductName = ProductName
词典不是 return 匹配我从 JavaScript 函数传递的 VB 脚本函数参数的值。
Javascript 将 prodid 值成功传递给 Vb 脚本函数,我也在 VB 脚本函数中读取了它,但是当我尝试从字典中获取值时,它 return没什么。
例如,如果我传递 prodid=1,然后它会被分配给 ProdcutId,但它不会从字典中获取 ProductId=1 的匹配值。 但我对 ProductId="1" 进行了硬编码,然后它将 return 来自字典的匹配值 apple。 当我在 GetProdcutName 中打印 ProductId 值时,它显示正确的值“1”。
经典ASP:
Public Function GetProductName(prodid)
Dim ProductId
Dim ProductName
ProductId = prodid
Dim dictproduct
Set dictproduct=Server.CreateObject("Scripting.Dictionary")
dictproduct.add "1","apple"
dictproduct.add "2","Samsung"
dictproduct.add "3","Blackberry"
ProductName =dictproduct.Item(ProductId)
GetProdcutName =ProductName
End function
JavaScript:
function ProductName()
{
var prodcutid=document.getElementById('prodcutList').value ;
var productname ='<%=GetYodleeProviderCode("' + prodcutid + '")%>';
}
修复您发布的代码中的拼写错误(产品的拼写)后,将 prodid
强制为字符串应该可以解决您的问题:ProductId = CStr(prodid)
。这应该等同于您将 1 硬编码为“1”时的尝试。
Public Function GetProductName(p_iProdId)
Dim sProductId
Dim sProductName
sProductId = "P" & Trim(CStr(p_iProdId))
Dim dictProducts
Set dictProducts = Server.CreateObject("Scripting.Dictionary")
dictProducts.Add "P1", "apple"
dictProducts.Add "P2", "Samsung"
dictProducts.Add "P3", "Blackberry"
sProductName = dictProducts.Item(sProductId)
GetProductName = sProductName
End Function
您在分配 return 值时似乎拼错了函数名称("c" 和 "u" 颠倒了)。应该是:
GetProductName = ProductName