php - 在 sql 调用之前显示 Bootstrap 警报

标签 php html mysql twitter-bootstrap-3

我想显示引导警报:

<div class="alert alert-warning" id="slow_loading_data">
    <strong>Warning!</strong> Retrieving a large quantity of data, please wait.
</div>

我希望它在 PHP 代码的其余部分运行之前立即显示。我有一个 SQL 语句从 MySQL 数据库检索超过 5000 条记录,因此我希望用户知道页面正在加载。

$sql = "SELECT * FROM " . dbname_bowl . ".ball_model";
try {
    $query = $conn->prepare($sql);
    $query->execute();
    while($data = $query->fetch()) {
        $modelID = $data['modelID'];
        $model[$modelID]['name'] = $data['name'];
    }
        $query->closeCursor();
    } catch (Exception $e) {
        $error_message = 'There was an error processing your request. Page aborted. Please contact the System Administrator with Date & Time of your error. (' . date('Y-m-d H:i:s',time()) . ")";
        $application->enqueueMessage(JText::_($error_message), 'error');
        return;
    }

任何解决此问题的帮助将不胜感激。

最佳答案

您想要做的是在循环之前将输出刷新到屏幕。您可以通过使用 ob_flush 来实现此目的& flush PHP的方法

因此请尝试以下操作:

就在<?php之后(或者在 session_start() 之后,如果有的话),添加以下行:

if (ob_get_level() == 0) ob_start();

这将打开您的输出缓冲区。阅读/了解更多 ob_start .

然后,就在 $sql = ... 之前位,添加以下内容:

ob_flush();
flush();

什么 ob_flush 所做的是:

Flush (send) the output buffer

什么 flush 方法的作用是:

Flush system output buffer

如果这不起作用,请在 ob_flush() 之前添加以下内容:

echo str_pad("", 4096);

(通过添加上面的 echo ,您可以欺骗它认为它有足够的数据来执行刷新)

还有一件事需要注意,根据 dermeister 的评论PHP 手册页 ob_flush --

some problems with ob_flush() and flush() could be resolved by defining content type header :

header( 'Content-type: text/html; charset=utf-8' );

关于php - 在 sql 调用之前显示 Bootstrap 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49200345/

相关文章:

php - php 脚本中的 Cron 不起作用

html - jsPDF - 将 html 页面准确捕获为 PDF

javascript - 使用 vanilla JS 突出显示事件选项卡

mysql - 使用 ONLY_FULL_GROUP_BY mysql 模式 hibernate

php - NULL 作为 codeignitier 事件记录选择中的列?

php - IS NOT NULL 在 Yii Active Record 中不起作用

php - 如何使用 php mysql LOAD DATA INFILE 将每个记录的变量值增加 1

html - 为什么当我固定它时我的标题向下移动?

php - CodeIgniter SQL 查询包含撇号并按特定顺序搜索每一列

mysql - 如何从snort sql中删除这个事件?