因此,我正在处理一个表单,我使用PHP从数据库中提取一个联系人数组。由于结果是一个数组,我使用了一个foreach循环来回显联系人并继续前进。这是我的代码:
<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列表中,并且当页面呈现时,源看起来应该是:
<p class='contact-list'>
<p><input type='radio' ...
</p>
<p><input type='radio' ...
</p>
</p>不是这样的。与其作为. contact列表的子类,每个联系人都是它的兄弟,我想知道为什么会发生这种情况。
呈现后的页面的源如下:
<p class='contact-list'></p>
<p><input type='radio' name=''...
</p>
<p><input type='radio' name=''...
</p>有人能解释为什么段落标记在foreach循环运行之前关闭吗?
更新:
我决定使用div而不是段落,然后嵌套正确,所以我假设这是段落标记的一个特征。尽管如此,我仍感兴趣的是找出段落标签为什么会这样做。
发布于 2012-05-14 14:08:18
因为p是一个块元素,只能包含内联元素。但是你在里面放了其他的p-elements。使用span而不是p,这应该如您所期望的那样工作。
发布于 2012-05-14 14:09:37
你试过这个吗?
foreach( $contacts as $contact ){
echo "<span><input type='radio' name='contact' id='contact-{$contact['id']}' value='{$contact['id']}'/>{$contact['name']} </span>";
}https://stackoverflow.com/questions/10584891
复制相似问题