结合PHP和很多HTML

时间:2013-10-05 20:01:54

标签: php html

我正在创建一个动态页面,它回显了许多divs,其中有一个类和一个从数据库中提取的唯一ID,因此可以轻松地操作它们。我不确定我是否以最好的方式做到这一点似乎对我来说很邋and和难以理解。我希望有更多经验的人可以帮我弄清楚是否有更好的方法来完成同样的事情。例如:

if ($comment['reply'] == 1) {
    echo '<div class="comment">';
    echo $comment['comment'];
    echo "</div>";
    echo '<BR /> <div class="replys" id="'.$comment['id'].'">';
    echo '</div>';
    echo '<div class="replyTo" id="'.$comment['id'].'reply">';
while ($replys = $stmt1->fetch(PDO::FETCH_ASSOC)) {
    if ($replys['order_by'] % 2 == 0){
        echo '<div class="replyToEven">';
        echo $replys['reply'];
        echo "</div>";
} else {
        echo '<div class="replyToOdd">';
        echo $replys['reply'];
        echo "</div>";
   }

}

我让它回显div的原因是因为我希望所有内容都在单独的divs中,而不是将数据与MySQL查询分开。希望我提供了足够的信息,如果您需要,请告诉我。

3 个答案:

答案 0 :(得分:1)

如果这就是你的意思,你可以将代码压缩很多:

if($comment['reply'] == 1){
    echo '<div class="comment">' . $comment['comment'] . '</div> <br />' . 
              '<div class="replys" id="' . $comment['id'] . '">' . '</div>' . 
                 '<div class="replyTo" id="'.$comment['id'].'reply">';

    while($replys = $stmt1->fetch(PDO::FETCH_ASSOC)){
        if($replys['order_by'] % 2 == 0){
            echo '<div class="replyToEven">' . $replys['reply'] . "</div>";
        }else{
            echo '<div class="replyToOdd">' . $replys['reply'] . "</div>";
        }
    }
}

答案 1 :(得分:1)

关于PHP的一个很酷的事情是你可以将它嵌入到HTML中。所以你可以做的是使用html布局并使用内联php语句来处理你的值。我将向您展示您发布的php的示例。

<?php if(comment['reply'] == 1 { ?>
     <div class="comment">
        <?php echo $comment['comment']; ?>
     </div>
     <br/>
     <div class="replys" id="<?php echo comment['id']; ?>" >
     <div class="replyTo" id="<?php echo $comment['id']; ?>reply">
     <?php while ($replys = $stmt1->fetch(PDO::FETCH_ASSOC)) { ?>
       <?php if ($replys['order_by'] % 2 == 0){ ?>
          <div class="replyToEven">
             <? php echo $replys['reply']; ?>
          </div>
        <?php } else { ?>
          <div class="replyToOdd">';
             <?php echo $replys['reply']; ?>
          </div>
<?php
    }
}

&GT;

然后你可以把这个片段放在一个名为show_comments();的函数中,在你的主模板中你想用这种格式显示评论你可以调用函数show_comments();而不是输入这个再次编码。

答案 2 :(得分:0)

您的数据库中不应该只有一列用于为数据库分配备用行样式。相反,您可以引入变量并对其进行检查。

if ($comment['reply'] == 1) {
    echo '<div class="comment">';
    echo $comment['comment'];
    echo "</div>";
    echo '<BR /> <div class="replys" id="'.$comment['id'].'">';
    echo '</div>';
    echo '<div class="replyTo" id="'.$comment['id'].'reply">';
    $i = 0;
while ($replys = $stmt1->fetch(PDO::FETCH_ASSOC)) {
    if ($i % 2 == 0)
        $class = "replyToEven";
    else
        $class = "replyToOdd";

        echo '<div class="$class">';
        echo $replys['reply'];
        echo "</div>";
        $i++;
}

您也可以将标签写为:

<?php
if ($comment['reply'] == 1) {
?>
<div class="comment"><?=$comment['comment']?></div><BR />
<div class="replys" id="<?=$comment['id']?>"></div>
<div class="replyTo" id="<?=$comment['id']?>reply">';
<?php
}
?>

这将使您的代码更具可读性。