如何在coldfusion中爆炸来自html表单的数组?

时间:2014-10-09 20:35:43

标签: php html coldfusion

我是ColdFusion的新手(截至今天)。我不知道服务器使用的是什么版本。我已经阅读了http://help.adobe.com/livedocs/coldfusion/8/htmldocs/help.html?content=Part_4_CF_DevGuide_1.html中的一些内容,试图加快速度。

目前我的一个重要问题是:这个PHP的ColdFusion等价物是什么?

$numatt = $HTTP_POST_VARS['numatt'];
$att=explode(",",$numatt);
$attcount = count($att);

以下是上下文的整个PHP脚本:

<?php
$nument = $HTTP_POST_VARS['nument']; # this is one number. My debug example is 2.
$numatt = $HTTP_POST_VARS['numatt']; # this is an indefinite number of numbers separated by commas. My debug example is 3,5.
$numval = $HTTP_POST_VARS['numval']; # this is one number. My debug example is 6.
echo 'number of entities is: $nument<br><br>';
$att=explode(",",$numatt);
$attcount = count($att);
echo 'the attributes are $numatt, which can be broken down to $att[1] and $att[2].<br><br>';
echo 'there are $numval values for each attribute.<br><br>';
for ($i = 1; $i = $nument; $i++) {
    echo 'this is round $i of the loop. It has $att[$i] attributes.<br><br>';
    for ($j = 1; $j = $att[$i]; $j++) {
        echo 'this is for attribute $j of entity $i.<br><br>';
        for ($k = 1; $k = $numval; $k++) {
            echo 'here is loop $k for $numval values.<br>';
        } #end $k
    } #end $j
} #end $i
?>

基本上我需要将它从PHP翻译成ColdFusion,但是如果我在手册中花了足够的时间,我想我可以弄清楚如何设置循环。 (或者我会回来提出更多问题......)对于更好的手册或入门参考的指针也会受到欢迎 - 我刚刚通过Google找到了上面链接的那个。

1 个答案:

答案 0 :(得分:7)

在ColdFusion中,您可以使用listToArray()函数轻松地将字符串转换为数组。所有表单变量都在form范围内捆绑在一起。所有url变量都在url范围内捆绑在一起。

<cfoutput>

    <!--- reference variables submitted through a form --->
    <p>name sent through form: #form.firstName#</p>

    <!--- reference variable in url --->
    <p>name in url: #url.firstName#</p>

    <!--- output a list of all fields submitted in a form --->
    <p>all form field names: #form.fieldNames#</p>

    <!--- quickly dump form and url data (for debugging purposes) --->
    <cfdump var="#form#">
    <cfdump var="#url#">

    <!--- output all form field data --->
    <cfloop collection="#form#" item="key">
      Form field name: #key#, form field value: #form[key]#
    </cfloop>

    <!--- converting strings into arrays, default delimiter is comma --->
    <cfset arr1 = listToArray("my,list,is,cool", ",")>

    <cfset arr2 = listToArray("my other list", " ")>

    <cfset arr3 = listToArray("yet:another:list", ":")>

    <!--- how many items in arr1? --->
    #arrayLen(arr1)#

    <!--- loop over arr3 --->
    <cfloop from="1" to="#arrayLen(arr3)#" index="i">
      #arr3[i]#
    </cfloop>

</cfoutput>

CFML让一切变得简单。请记住,如果您不想使用标签,CFML还会提供脚本语法。