2016-08-07 3 views
2

ListEach関数を使用して2つの異なる値から値をカンマで区切ります。このようなlisteachとカンマ区切りの値で発行

41.47,105.0000,450,455,25.84 

何とか:

<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 

どのように見えるかですが、私は通りの値を取得したいですgetselectiontextの値が私に問題を引き起こしています。次のエラーが表示されています。

以下の情報は、デバッグの目的でウェブサイト開発者向けの情報です。 エラー処理要求 無効リストインデックス3.関数ListGetAtで

(リスト、インデックス[、デリミタ])、インデックス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: 
+0

わかりません。 'getselectiontext'には3つの項目(空を含む)があります。 'getselection'値の3回目と4回目の反復のときに、' getselectiontext'の2番目と3番目の値が必要ですか?しかしそれ以外の場合は、4番目のブール値パラメータを取得できないように見えます。 – duncan

+0

はい、seemsthingが間違っていて、私は何を理解していないのですか? –

+0

私はそれを解決したと思っています。実際にはテキストフィールドを無効にしていて値はありませんでした。今。 –

答えて

0

あなたの第二のリスト{getselectiontextは}あなたがListEachで反復されている{} getselection中5つの項目よりも発熱している2つの項目が含まれています。

"-1"の場合、存在しないインデックス3またはインデックス4の{getselectiontext}からリスト項目を取得しようとしています。

送信されたデータと、フォーム経由での送信方法を確認する必要があります。

+0

私は私の上記のコメントで言ったように、私はそうしなければならないテキストフィールドを無効にしていた –