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

ccgok5k5  于 2022-12-25  发布在  PHP
关注(0)|答案(7)|浏览(135)

如果可能的话,我希望将HTML嵌入到PHP if语句中,因为我认为HTML应该在PHP if语句执行之前出现。
我试图访问数据库中的一个表,我用HTML创建了一个下拉菜单,列出了数据库中的所有表,一旦我从下拉菜单中选择了表,我就点击了提交按钮。
我使用isset函数来查看提交按钮是否被按下,并在PHP中运行一个循环来显示数据库中表的内容。因此,此时我已经有了完整的表,但我还想在该表上运行一些查询。因此,我尝试在if语句中执行更多HTML。最终,我想要么更新(一行或多行中的1个或多个内容)或删除(1行或多行)内容。我的我尝试创建另一个与表中的列相对应的下拉列表,以使表搜索更容易,并创建对应于我是想更新还是删除表中的内容。

z8dt9xmd

z8dt9xmd1#

<?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。

vxf3dgd4

vxf3dgd42#

是的,

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

20jt8wwn3#

是的。

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

lmyy7pcs4#

使用PHP关闭/打开标签不是很好的解决方案,因为2个原因:你不能在纯HTML中打印PHP变量,这使得你的代码很难阅读(下一个代码块以一个尾括号}开始,但是读者不知道前面是什么)。
更好的方法是使用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;
 }
 ?>

END_OF_TEXT是你的分隔符(它基本上可以是任何文本,如EOF,EOT). PHP将其间的所有内容视为字符串,就好像它们是在双引号中一样,所以你可以打印变量,但你不必转义任何引号,所以打印html属性非常方便.
请注意,结束分隔符必须从行首开始,分号必须紧跟其后,不能有其他字符(END_OF_TEXT;)。
用单引号括起字符串的Heredoc(')叫做nowdoc。nowdoc内部不做解析。使用方法与heredoc相同,只是将开始分隔符放在单引号中-echo <<< 'END_OF_TEXT'

vawmfj5a

vawmfj5a5#

所以如果condition等于你想要的值,那么php文档会运行include命令,include命令会将该文档添加到当前窗口中,例如:
'

<?php
$isARequest = true;
if ($isARequest){include('request.html');}/*So because $isARequest is true then it will include request.html but if its not a request then it will insert isNotARequest;*/
else if (!$isARequest) {include('isNotARequest.html')}
?>

'

yfjy0ee7

yfjy0ee76#

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

s71maibg7#

我知道这是一个老帖子,但我真的很讨厌这里只有一个答案,建议不要混合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(/路径/到/文件. html)中

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

其输出结果为:

Alice ate apples for lunch with Bob.

相关问题