使用逗号分隔值

时间:2016-08-07 15:52:40

标签: coldfusion coldfusion-11

我使用ListEach函数以逗号分隔两个不同值的值。

像这样:

<cfscript>
    result = [];
    listEach(form.getselection, function(value, index) {
        switch (value) {
            case "-2":
                result.append(listLast(ListGetAt(form.get_items, index), "~"));
                break;
            case "-1":
                result.append(ListGetAt(getselectiontext, index,',',true));
                break;
            default:
                result.append(value);
        }
    });
    </cfscript>

这是值的样子

GETSELECTION    -2,105.0000,-1,-1,-2
GETSELECTIONTEXT    ,450,455
GET_ITEMS          128177000001304041~ mytext~YES~41.47,128177000001518319~mytext2~YES~91.52,128177000001518343~mytext3~YES~242.53,128177000001460287~mytext4~YES~15.0,128177000001304009~mytext5~YES~125.84

所以,连接两者,我想得到的值为:

41.47,105.0000,450,455,25.84

但不知何故getselectiontext中的值导致我遇到麻烦,我收到以下错误:

以下信息适用于网站开发人员以进行调试。 处理请求时发生错误 列表索引3无效。

在函数ListGetAt(list,index [,delimiters])中,index的值3不是第一个参数的有效值(此列表有2个元素)。有效索引的范围为1到列表中的元素数。

The error occurred in C:/inetpub/wwwroot/myproject/secure/portal.cfm: line 56
54 :                break;
55 :            case "-1":
56 :                result.append(ListGetAt(getselectiontext, index,','));
57 :                break;
58 :            default:

1 个答案:

答案 0 :(得分:0)

您的第二个列表{getselectiontext}包含2个项目,这些项目比使用ListEach迭代的{getselection}中的5个项目更热。

如果&#34; -1&#34;,您试图从索引3或索引4的{getselectiontext}获取一个不存在的列表项。

您需要查看提交的数据以及通过表单提交的数据。