所以我正在处理一个表单,我正在使用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>
我这样做是因为我希望将每个联系人作为子项放在.contact-list中,当页面呈现时,源代码应该是:
<p class='contact-list'>
<p><input type='radio' ...
</p>
<p><input type='radio' ...
</p>
</p>
不是这样的。每个联系人都不会成为.contact-list的孩子,而是一个兄弟姐妹,我想知道为什么会这样。
呈现后页面中的来源是:
<p class='contact-list'></p>
<p><input type='radio' name=''...
</p>
<p><input type='radio' name=''...
</p>
在foreach循环运行之前,有人能解释为什么Paragraph标签正在关闭吗?
更新
我决定使用div而不是段落,然后嵌套工作正常,所以我假设这是段落标记的特征。也就是说,我仍然有兴趣找到为什么段落标签这样做。
答案 0 :(得分:3)
因为p
是一个只能包含内联元素的块元素。但是你在其中添加了其他p
- 元素。使用span
代替p
,这应该可以按预期工作
答案 1 :(得分:0)
你试过这个吗?
foreach( $contacts as $contact ){
echo "<span><input type='radio' name='contact' id='contact-{$contact['id']}' value='{$contact['id']}'/>{$contact['name']} </span>";
}