可以在PHP“if”语句中嵌入HTML吗?

时间:2009-04-06 17:19:53

标签: php html

我想在PHP if语句中嵌入HTML,如果它甚至可能,因为我认为HTML会在PHP if语句执行之前出现。

我正在尝试访问数据库中的表。我在HTML中创建了一个下拉菜单,列出了数据库中的所有表格,一旦我从下拉列表中选择了表格,我点击了提交按钮。

我使用isset函数查看是否已按下提交按钮并在PHP中运行循环以显示数据库中表的内容。所以在这一点上我有完整的表,但我想在这个表上运行更多的查询。因此,我试图在if语句中执行更多HTML。最终,我正在尝试更新(一行或多行中的一个或多个内容)或删除(一行或多行)内容。我要做的是创建另一个下拉列表,该下拉列表对应于表格中的列以使表格搜索更容易,单选按钮对应于我是否要更新或删除表格中的内容。

7 个答案:

答案 0 :(得分:335)

<?php if($condition) : ?>
    <a href="http://yahoo.com">This will only display if $condition is true</a>
<?php endif; ?>

根据要求,这是elseif和else(你也可以在the docs中找到)

<?php if($condition) : ?>
    <a href="http://yahoo.com">This will only display if $condition is true</a>
<?php elseif($anotherCondition) : ?>
    more html
<?php else : ?>
    even more html
<?php endif; ?>

就这么简单。

只有满足条件才会显示HTML。

答案 1 :(得分:37)

是的,

<?php
if ( $my_name == "someguy" ) {
    ?> HTML GOES HERE <?php;
}
?>

答案 2 :(得分:13)

<?  if($my_name == 'someguy') { ?>
        HTML_GOES_HERE
<?  } ?>

答案 3 :(得分:2)

使用PHP close / open标签不是一个很好的解决方案,原因有两个:你不能用普通的HTML打印PHP变量,这会使你的代码很难阅读(下一个代码块以一个端括号开始{{ 1}},但读者不知道之前是什么。)

最好是使用heredoc语法。它与其他语言(如bash)的概念相同。

}

<?php if ($condition) { echo <<< END_OF_TEXT <b>lots of html</b> <i>$variable</i> lots of text... many lines possible, with any indentation, until the closing delimiter... END_OF_TEXT; } ?> 是您的分隔符(它基本上可以是任何文本,如EOF,EOT)。 PHP之间的所有内容都被认为是双引号,因此您可以打印变量,但不必转义任何引号,因此打印html属性非常方便。

请注意,结束分隔符必须从行的开头开始,分号必须紧跟在其后面而没有其他字符(END_OF_TEXT)。

单引号(END_OF_TEXT;)中字符串行为的Heredoc称为 nowdoc 。在nowdoc内部没有解析。您以与heredoc相同的方式使用它,只需将开头分隔符放在单引号中即可 - '

答案 4 :(得分:1)

因此,如果条件等于你想要的值,那么php文档将运行“include” 并包含将该文档添加到当前窗口 例如:

`

a <- as.character("100 + 100 + 50,00 + 100 + 50 + 5,000 + 
      100 + 100 + 100 + 100 + 100 + 100 + 
                  20,000 + 3,000 + 20,000 + 100 + 1,300")

b <- gsub(",","",a)

eval(parse(text = b))
55350

`

答案 5 :(得分:0)

<?php if ($my_name == 'aboutme') { ?>
    HTML_GOES_HERE
<?php } ?>

答案 6 :(得分:0)

我知道这是一篇老文章,但我真的很讨厌这里只有一个答案,建议不要混合使用html和php。不应混合使用内容,而应使用模板系统,或者自己创建一个基本的模板系统。

在php

<?php 
  $var1 = 'Alice'; $var2 = 'apples'; $var3 = 'lunch'; $var4 = 'Bob';

  if ($var1 == 'Alice') {
    $html = file_get_contents('/path/to/file.html'); //get the html template
    $template_placeholders = array('##variable1##', '##variable2##', '##variable3##', '##variable4##'); // variable placeholders inside the template
    $template_replace_variables = array($var1, $var2, $var3, $var4); // the variables to pass to the template
    $html_output = str_replace($template_placeholders, $template_replace_variables, $html); // replace the placeholders with the actual variable values.
  }

  echo $html_output;
?>

在html(/path/to/file.html)

<p>##variable1## ate ##variable2## for ##variable3## with ##variable4##.</p>

其输出为:

Alice ate apples for lunch with Bob.