如何将两个HTML元素与多个标记一起粉碎

时间:2012-03-23 00:57:33

标签: html

查看图片:http://i.stack.imgur.com/yxE4u.jpg

虽然这是在PHP中,但我试图(使用HTML)获得两个单词(使用相同的类)彼此相邻而不单独调用类或使用相同的if / if中的两个单词其他功能。我确定它只是一个简单的HTML元素。

            <?php
                if (something){
                    echo "<p class='message'>hello</p>";
                }

                if (somethingelse){
                    echo "<p class='message'>world</p>";
                }
            ?>

由于评论不是我所追求的,我将展示我正在使用的内容:

            <?php
                if (!empty($message)){
                    echo "<p class='message'>" . $message . "</p>";
                }

                if (!empty($errors)){
                    echo "<p class='message'>";
                    foreach ($errors as $error){
                        echo " - " . $error . "<br />";
                    }
                    echo "</p>";
                }
            ?>

同时发表一个或两个声明可能都是正确的。希望你能看出为什么我不能将它全部包装在HTML标签周围。

5 个答案:

答案 0 :(得分:0)

我想你想要这样做

<p class="messasge"> <?php echo $message; ?> </p>

答案 1 :(得分:0)

RE-FIXED 根据更新的规范:

       <?php
            if (!empty($message)){
                echo "<p class='message'>" . $message;
            }

            if (!empty($errors)){
                if (empty($message) echo "<p class='message'>";

                foreach ($errors as $error){
                    echo " - " . $error . "<br />";
                }
            }

            if ((!empty($message))||(!empty($errors))) echo "</p>";

        ?>
  • 如果message只是true,则会打印<p class='message'>MESSAGE</p>
  • 如果errors只是true,则会打印<p class='message'>ERRORS</p>
  • 如果两个人都是true,则会打印<p class='message'>MESSAGEERRORS</p>

答案 2 :(得分:0)

<?php
    $message = "";
    if (something) $message = "hello";
    if (somethingelse) $message += " world";
    echo "<p class='message'>".$message."</p>";
?>

答案 3 :(得分:0)

我想您可能想要以下代码的一些变体:

<?php
    $output = '';
    if (something)
        $output .= 'hello';
    if (somethingelse)
        $output .= 'world';
    if ($output)
        echo "<p class='message'>$output</p>";
?>

对于您的示例,您可以替换前两个条件中的所有echo并附加到$message,然后仅在有输出内容时输出。有很多选择,但我认为这是最灵活/优雅的。

在您的情况下,它可以简化为,

<?php
    $output = $message;
    if (!empty($errors))
        foreach ($errors as $error)
            $output .= " - $error<br />";
    if (!empty($output))
        echo "<p class='message'>$output</p>";
?>

答案 4 :(得分:0)

也许dl列表很有用

<?php
  if (!empty($message)){
      echo "<dl class='message'><dt>" . $message . "</dt>";
      }

  if (!empty($errors)){
      foreach ($errors as $error){
        echo "<dd> - " . $error . "</dd>";
             }
   echo "</dl>";
     }
?>