首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Foreach循环嵌套无效

Foreach循环嵌套无效
EN

Stack Overflow用户
提问于 2012-05-14 14:03:54
回答 2查看 161关注 0票数 1

因此,我正在处理一个表单,我使用PHP从数据库中提取一个联系人数组。由于结果是一个数组,我使用了一个foreach循环来回显联系人并继续前进。这是我的代码:

代码语言:javascript
复制
    <p class='contact-list'>
      <?php

        foreach( $contacts as $contact ){
            echo "<p><input type='radio' name='contact' id='contact-{$contact['id']}' value='{$contact['id']}'/>";
            echo " {$contact['name']}</p>";
        }

      ?>
    </p>

我之所以这样做,是因为我希望将每个联系人作为子联系人放在. contacts列表中,并且当页面呈现时,源看起来应该是:

代码语言:javascript
复制
<p class='contact-list'>
    <p><input type='radio' ...
    </p>
    <p><input type='radio' ...
    </p>
</p>

不是这样的。与其作为. contact列表的子类,每个联系人都是它的兄弟,我想知道为什么会发生这种情况。

呈现后的页面的源如下:

代码语言:javascript
复制
<p class='contact-list'></p>
<p><input type='radio' name=''...
</p>
<p><input type='radio' name=''...
</p>

有人能解释为什么段落标记在foreach循环运行之前关闭吗?

更新:

我决定使用div而不是段落,然后嵌套正确,所以我假设这是段落标记的一个特征。尽管如此,我仍感兴趣的是找出段落标签为什么会这样做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-14 14:08:18

因为p是一个块元素,只能包含内联元素。但是你在里面放了其他的p-elements。使用span而不是p,这应该如您所期望的那样工作。

票数 3
EN

Stack Overflow用户

发布于 2012-05-14 14:09:37

你试过这个吗?

代码语言:javascript
复制
foreach( $contacts as $contact ){
        echo "<span><input type='radio' name='contact' id='contact-{$contact['id']}' value='{$contact['id']}'/>{$contact['name']} </span>";
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10584891

复制
相关文章

相似问题

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