我想延迟脚本的执行,我使用usleep函数让它在输出之前实际计算一些东西。我希望在延迟模式下显示一条消息。示例:用户单击“提交”按钮后,会显示一条消息“请等待我们正在处理您的请求...”,并在usleep时间到达且结果显示时消失。我的代码:
<div>
<form id="form1" name="form1" method="post" action="">
<label>
<select name="fortune" id="fortune"><?php callcombobox('fortune',$fortune); ?></select>
</label>
<input name="submitbtn" type="submit" id="submitbtn" class="submitbutton" value="Submit" style="width:180px; height:30px;" />
</p>
</form>
</div>
<div>
<?php
echo 'Please wait while we are processing your request..';
flush();
usleep(5000000);
?>
<p class="textcolor">Your fortune is :</p>
<p class="textcolor"><?=nl2br($returnanswer)?></p>//result of fortune
</div>
我是php的新手并且尝试了上面的代码并没有显示echo msg它只显示了从数据库中检索到的结果。有人可以帮忙吗?感谢。
答案 0 :(得分:1)
PHP有一些输出缓冲,因此在脚本结束之前不会输出。您应该尝试在脚本开头添加ob_end_flush。或者在php.ini配置output_buffering
中将其关闭<?php ob_end_flush(); ?>
<div>
<form id="form1" name="form1" method="post" action="">
<label>
<select name="fortune" id="fortune"><?php callcombobox('fortune',$fortune); ?></select>
</label>
<input name="submitbtn" type="submit" id="submitbtn" class="submitbutton" value="Submit" style="width:180px; height:30px;" />
</p>
</form>
</div>
<div>
<?php
echo 'Please wait while we are processing your request..';
flush();
usleep(5000000);
?>
<p class="textcolor">Your fortune is :</p>
<p class="textcolor"><?=nl2br($returnanswer)?></p>//result of fortune
</div>