【问题标题】:Adding PHP inline to HTML将 PHP 内联添加到 HTML
【发布时间】:2013-11-17 03:14:46
【问题描述】:

我正在尝试使用PHP设置文本框的值,我尝试了这个问题的解决方案:

Can HTML be embedded inside PHP "if" statement?

这是我正在做的事情:

 <?php if(isset($_SESSION['date']) : ?>
        <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']?>"/>
    <?php else : ?>
        <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']?>"/>
    <?php endif;?>

但这对我不起作用。我知道&lt;?php echo $_SESSION['date']?&gt; 有效且有效,因为我在表单的开头插入了它,它显示了预期的数据。有人可以告诉我我在这里做错了什么吗?

当我说它不起作用时,要清楚的是,页面上没有呈现任何数据。您看不到任何 HTML。当我删除上面的代码时,所有的 HTML 字段都按预期显示。

【问题讨论】:

    标签: php html if-statement


    【解决方案1】:

    $_SESSION['date'] 之后缺少一个结束括号。在 echo 语句之后,您还缺少一些分号。您的代码应为:

    <?php if(isset($_SESSION['date'])) : ?>
        <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']; ?>"/>
    <?php else : ?>
        <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']; ?>"/>
    <?php endif;?>
    

    希望对您有所帮助。

    【讨论】:

    • $_SESSION['date'] 的末尾没有缺少括号,但 if 语句和分号上缺少括号。感谢您的帮助!
    • 我认为缺少一个括号。您关闭了 isset(),但没有关闭 if()。也许我错了,但我不这么认为。无论如何,我希望你的情况得到解决。祝你好运:)
    【解决方案2】:

    可能你的 PHP 配置(见 php.ini)被设置为隐藏错误,把这段代码放在你的 php 代码的开头确实打开显示错误

    <?php
    
    // Report all PHP errors
    error_reporting(E_ALL);
    
    ?>
    

    您的代码中的错误是 if 语句缺少“)”,这是工作代码:

    <?php if(isset($_SESSION['date'])) : ?>
            <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']?>"/>
        <?php else : ?>
            <div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="<?php echo $_SESSION['date']?>"/>
        <?php endif;?>
    

    【讨论】:

    • 谢谢,这就像一个魅力!可以的话我会接受的!我想这将是一件愚蠢的事情。再次感谢你:)
    • 别担心,现在您可以看到 PHP 错误,而不是没有(空白页),这将对您进一步有用。通过 php.ini(php 配置)搜索打开/关闭错误,因为您可以对整个 PHP 应用程序执行一次,而不是通过代码手动更改它。当您想为用户隐藏并显示以进行调试时,它非常有用。
    【解决方案3】:

    其他人已经在您的if 语句中指出了缺少括号的问题,但我发现这种 HTML 在一行中,PHP 在另一种格式上难以阅读且难以调试。它已通过 CMS 设置中使用的代码中的模板格式得到普及。但由于我来自纯 PHP 编程背景,所以我会将这段代码编写为:

    <?php
      if (isset($_SESSION['date'])) {
        echo '<div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="' . $_SESSION['date']; . '"/>';
      }
      else {
        echo '<div class="label">Service Date:</div> <input type="text" class="service_date" name="service_date" value="' . $_SESSION['date']; . '"/>';
      }
    ?>
    

    但是就是说,看看你的代码你的ifelse 输出相同的值?错字?或者这个伪代码是示例而不是生产代码?

    【讨论】:

    • 那是一个错字。感谢您的反馈意见。很有帮助。
    猜你喜欢
    • 2015-10-10
    • 2011-07-05
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多