php - 最佳实践 : where to put the PHP code?

标签 php html position

我承认这个问题会有点含糊,但我会尝试通过几个例子来解释我想要完成的事情。我有一些 PHP 代码可以从 MySQL 数据库加载一堆变量,包含一些声明、一些快速输出 HTML 代码的函数等。但是我很乐意在将任何内容发送到客户端之前完成所有这些工作。

我也是这样的:

<?php
include("somefile.inc");
function bla()
{
    ...
}

if (fails)
    echo "Error: ...<br />";

?>
<!DOCTYPE>
<html>
    <head>
        <script>
            ...
            <?php echo $someString; ?>
            ...
        </script>
    </head>
    <body>
        ...
    </body>
</html>

一切都很好,直到出现错误。回显不会显示在浏览器中,因为它在所有 HTML 之前...所以我修改了:

<!DOCTYPE>
<html>
    <head>
        <script>
            ...
            <?php echo $someString; ?>
            ...
        </script>
    </head>
    <body>
        <div class="error_block">
            <?php
            include("somefile.inc");
            function bla()
            {
                ...
            }

            if (fails)
                echo "Error: ...<br />";

            ?>
        </div>

        ...

    </body>
</html>

现在我真的可以看到错误了,这很好。但现在问题出现了,在标题或脚本中,我无法访问稍后将在新创建的 error_block 中加载的变量。

我真的不喜欢将 error_clock 中的代码拆分到 HTML 文档之上的一些代码和 error_block 中的一些代码。而且我也不想使用 PHP 的 die() 函数,它会突然结束执行。

任何人都可以在这个问题上给出他们的 2 美分吗?谢谢。

最佳答案

如果您正在寻找替代解决方案,我为您准备了一个。我喜欢做的是将逻辑放在 DOCTYPE

之前
if(error) { $error = "Please do something" }

然后,在文档中我有一个 div 只是为了错误(感谢@Dave 的输入)

<?php echo $error != '' ? '<div id="error">' . $error . '</div>' : ''; ?>

如果没有错误(意味着 $error 是空的),这个 div 将不会出现,并且它使您可以更轻松地按照您喜欢的方式设置错误消息的样式

#error { color:red; }

如果您想要花哨一些,可以使用一些 jQuery 来隐藏/显示 div,这样错误就不会一直存在。

$('#error').show().delay(7000).fadeOut();

关于php - 最佳实践 : where to put the PHP code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6874169/

相关文章:

php - 我是否需要联接才能从此表中检索信息?

html - 通过隔行扫描加载图像 - 从低分辨率到全分辨率 - HTML

javascript - 获取 X,Y 坐标并在单击图标时传递值 (JQuery)

jquery - 检查鼠标是否位于元素上方 jQuery

css - div 的内联文本位置

php - 我想用 php 将西里尔字母发送到 mysqli 数据库

c# - 即时服务器-客户端通信,C#?

c# - 网页与 C# 程序通信/触发事件?

javascript - 尽管网站上有非 SVG 元素,如何在 SVG 上的鼠标光标旁边显示工具提示?

javascript - 从 Promise 返回数据并在另一个方法中获取它