首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >索引cfloop到php for循环

索引cfloop到php for循环
EN

Stack Overflow用户
提问于 2012-06-28 03:54:41
回答 3查看 321关注 0票数 1

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

代码语言:javascript
复制
    <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>

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

代码语言:javascript
复制
<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循环工作得很好,但我只能让外部循环显示select标记代码一次,而不是五次(这正是我需要的)。

有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-28 03:59:32

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

将您的第二个循环变量更改为如下所示:

代码语言:javascript
复制
<?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
EN

Stack Overflow用户

发布于 2012-06-28 04:02:08

第一个循环应该是for ($i=0; $i<5; $i++),而不是for ($i=0; $i<count($results); $i++),如果您想让它显示select五次。

此外,不要将$i用于两个循环,就像TNC在他的回答中提到的那样。这就是循环在第一次select之后退出的原因。

票数 0
EN

Stack Overflow用户

发布于 2012-06-28 04:11:41

虽然你可以在上面的代码行之间进行翻译,但是下面的代码可能会更有效率。假设您使用的是mssql_*函数集:

代码语言:javascript
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11233933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档