我想在PHP if语句中嵌入HTML,如果它甚至可能,因为我认为HTML会在PHP if语句执行之前出现。
我正在尝试访问数据库中的表。我在HTML中创建了一个下拉菜单,列出了数据库中的所有表格,一旦我从下拉列表中选择了表格,我点击了提交按钮。
我使用isset函数查看是否已按下提交按钮并在PHP中运行循环以显示数据库中表的内容。所以在这一点上我有完整的表,但我想在这个表上运行更多的查询。因此,我试图在if语句中执行更多HTML。最终,我正在尝试更新(一行或多行中的一个或多个内容)或删除(一行或多行)内容。我要做的是创建另一个下拉列表,该下拉列表对应于表格中的列以使表格搜索更容易,单选按钮对应于我是否要更新或删除表格中的内容。
答案 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.