【发布时间】:2010-09-10 20:34:47
【问题描述】:
更新:
谢谢 Ben,我决定将 URL 复制到另一个结构并使用 StructUpdate() 修改该结构。如果有人感兴趣,这是代码(特定于我的应用程序,但您可以使用 cmets 编辑这些行以获得有用的功能)。
function rebuildURL(key, value)
{
var URLstring = "";
var VarCount = 0;
var tmpURL = duplicate(URL);
var VarSeparator = "";
structUpdate(tmpURL, arguments.key, arguments.value);
for (key in tmpURL)
{
if (tmpURL[key] neq "" and tmpURL[key] neq "10000" and tmpURL[key] neq "1") `<!--- remove the tmpURL[key] neq "10000" and "1"--->`
{
if (VarCount neq 0)
{
VarSeparator = "&";
}
else
{
VarSeparator = "";
}
URLstring = URLstring & VarSeparator & "#Lcase(key)#" & "=#Lcase(tmpURL[key])#";
VarCount = VarCount + 1;
}
}
structClear(tmpURL); `<!---not sure if this is necessary, but probably can't hurt unless you are processing thousands of links --->`
return(URLstring);
}
再次感谢! 斯科特
大家好,
我正在编写一个自定义函数来修改我页面中链接的 URL,我收到以下错误:
复杂对象类型不能转换为简单值。
表达式请求了一个变量或一个中间表达式结果作为一个简单值,但是,结果不能转换为一个简单值。简单值是字符串、数字、布尔值和日期/时间值。查询、数组和 COM 对象是复值的示例。 错误的最可能原因是您试图将复杂值用作简单值。例如,您可能试图在 cfif 标记中使用查询变量。
C:\ColdFusion8\wwwroot\pascalnew\turbos.cfm 出现错误:第 8 行 从 C:\ColdFusion8\wwwroot\pascalnew\turbos.cfm 调用:第 108 行 从 C:\ColdFusion8\wwwroot\pascalnew\turbos.cfm 调用:第 93 行 从 C:\ColdFusion8\wwwroot\pascalnew\turbos.cfm 调用:第 1 行 从 C:\ColdFusion8\wwwroot\pascalnew\turbos.cfm 调用:第 1 行
6 : URLvar = "#URL#";
7 : switch(param)
8 : {
9 : case 'mfr':
10 : {
这是我的功能代码:
<cfscript>
function SetURL(param, paramval)
{
URLvar = "#URL#";
switch(param)
{
case 'mfr':
{
IF (URLvar contains "mfr")
{
REReplaceNoCase(URLvar, "mfr=^[^\&]", "mfr=#paramval#", "All");
}
break;
}
}
return(URLvar);
}
</cfscript>
这是我正在测试的内容:
<cfset urlvar = SetUrl("mfr", "edwards")>
<cfdump var="#urlvar#">
“mfr”如何是一个复变量??
谢谢, 斯科特
【问题讨论】:
标签: coldfusion switch-statement