【问题标题】:Index cfloop to php for loop将 cfloop 索引到 php for 循环
【发布时间】:2012-06-27 19:54:40
【问题描述】:

我正在用 PHP 重写一个coldfusion 页面。我有一个索引 cfloop,其中有一个 cfoutput 查询。它看起来像这样:

    <h2>Choose up to Five Counties:</h2>
<cfif results.recordcount gt 0>
<cfloop from="1" to="5" step="1" index="i">
<!--- Looping Data --->
    <cfoutput>
    <select name="counties" style="width:150px; font-family:Arial,Helvetica; font-size:11px;">
        <option value="">- select county -
    </cfoutput> 
        <cfoutput query="results">
            <option value="#County_Name#" style="font-family:Arial,Helvetica; font-size:12px;">#County_Name#</option>
        </cfoutput> 
    </select>
</cfloop>
</cfif>

此代码循环选择标记代码 5 次,并循环访问 MSSQL 查询选项标记输出。我已经写了PHP端,它看起来像这样:

<h2>Choose up to Five Counties:</h2>

 <?php if(count($results) > 0) { 
    for ($i=0; $i<count($results); $i++) {
                 if ($i == 5) {
                    break;
                   } ?>

    <select name="counties" style="width:150px; font-family:Arial,Helvetica; font-size:11px;">
        <option value="">- select county -

            <?php for ($i=0; $i < count($results); $i++) { ?>

            <option value="<?php echo $results[$i]['County_Name']; ?>" style="font-family:Arial,Helvetica; font-size:12px;"><?php echo $results[$i]['County_Name']; ?></option>

            <?php } ?>

    </select>
     <?php } ?>
  <?php }; ?>

for 循环的内部索引工作得很好,但我只能让外部循环显示选择标记代码一次而不是五次(这是我需要的)。

有什么建议吗?

【问题讨论】:

    标签: php coldfusion cfloop


    【解决方案1】:

    问题是您在两个循环中都使用了$i。所以第一次循环通过第二个循环时,它每次都重置为 0。

    把你的第二个循环变量改成这样:

    <?php for ($x=0; $x < count($results); $x++) { ?>
    <option value="<?php echo $results[$x]['County_Name']; ?>" style="font-family:Arial,Helvetica; font-size:12px;"><?php echo $results[$x]['County_Name']; ?></option>
    <?php } ?>
    

    【讨论】:

      【解决方案2】:

      第一个循环应该是for ($i=0; $i&lt;5; $i++) 而不是for ($i=0; $i&lt;count($results); $i++),如果您希望它显示五次选择。

      另外,不要在两个循环中都使用$i,正如 TNC 在他的回答中提到的那样。这就是循环在第一次选择后退出的原因。

      【讨论】:

        【解决方案3】:

        虽然您可以逐行翻译上面的内容,但下面的内容可能会稍微高效一些。假设您使用的是 mssql_* 函数集:

        <?php
        $query = myssql_query('SELECT * ....');
        ?>
        
        <h2>Choose up to Five Counties:</h2>
        <select name="counties" style="width:150px; font-family:Arial,Helvetica; font-size:11px;">
        
        <?php
        while($results = mssql_fetch_assoc($query)){
            echo "<option value=\"{$results['County_Name']}\" style=\"font-family:Arial,Helvetica; font-size:12px;\">{$results['County_Name']}</option>";
        }
        ?>
        
        </select>
        

        【讨论】:

          猜你喜欢
          • 2016-07-17
          • 2012-09-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多