首页 文章

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

提问于
浏览 1717
97

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

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

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

6 回答

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

    是 .

    <?  if($my_name == 'someguy') { ?>
            HTML_GOES_HERE
    <?  } ?>
    
  • 10
    <?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 .

  • 2

    因此,如果条件等于您想要的值,则php文档将运行“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')}
    ?>
    

    `

  • 1

    是,

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

    使用PHP close / open标签不是一个很好的解决方案,原因有两个:你不能用普通的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' .

相关问题