PHP从MySQL返回HTML插入为兄弟而不是子


PHP echo HTML from MySQL Inserting as Sibling not Child

我有一个PHP页面,从MySQL表中提取数据。一个字段(内容)包含要在页面上填充的HTML。当尝试在段落标记中插入记录时,结果以段落标记开始和结束,但不能作为子元素正确插入,而是作为兄弟元素插入。有人能看出问题所在吗?

HTML/PHP

<?php
foreach ($pages as $page) {
?>
                <div class="slide" id="about-content">
                    <h1 class="pic-title"><?=$page->title;?></h1>
                    <p class="pic-caption overlay">
                        <?=$page->content;?>
                    </p>
                </div>
<?php
}
?>

输出HTML:

<div class="fp-tableCell" style="height:419px;">
   <h1 class="pic-title" style="margin-left: 25px;">Splash Page 2</h1>
   <p class="pic-caption overlay" style="display: block;">
   </p>
   <p>dfajdfn<strong>akdjfnas</strong></p>
   <p></p>
</div>
MySQL数据:

  • 标题:Splash Page 2
  • 内容:<p>dfajdfn<strong>akdjfnas</strong></p>

我似乎找不到这个。谢谢!

这是可以预料的,你在另一个<p>内插入一个<p>。您可以NOT嵌套段落,并且在段落内开始一个新段落将终止前一个段落。例如

<p>foo
<p>bar
<p>baz

将在内部生成

<p>foo</p>
<p>bar</p>
<p>baz</p>

在DOM树中

您可能应该改用<div>:

<div class="pic-caption overlay">
 ^^^---
    <?=$page->content;?>
</div>
  ^^^