大家好,我有一个表单,在提交指向脚本“sendeveryone.php”的链接后,这个脚本需要很长时间才能完成,所以我想在完成时显示加载图像,我怎么能做到这一点?
谢谢
在提交时,您可以使用 javascript 显示加载图像。将onclick="showLoading()"
属性放入您的提交按钮,并创建一个 showLoading() javascript 函数。
您有 2 个选项:ajax 调用脚本,然后在客户端运行一些显示进度的 js,或者您可以在 php 中返回响应并使用以下代码片段继续执行
/*
* basically allow a php script to return a response and continue with
* code execution, good for statistics.
* before echo anything to user call begin and after call end, than you can continue doing stuff
*/
class ScriptContinuationManager
{
/**
* this is the point where we need to give a sign to this class
* that we wanna write our response.
* @return void
*/
public function beginRespone()
{
ob_end_clean();
header("Connection: close");
ignore_user_abort(); // optional
ob_start();
}
/*
* after this function execution the response will be sent to the
* client, and code continue without client need to wait.
*/
public function endResponse()
{
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Strange behaviour, will not work
flush(); // Unless both are called !
}
}
尝试一个javascript解决方案:
这将隐藏提交按钮并在适当位置显示图像。您需要自己选择加载图像,您可以在http://ajaxload.info/生成一个。此外,您必须为表单提供一个 ID 属性,并将其放入脚本中。
(确保包含 jQuery)
var formid = ''; // What is the ID of the form? (without the #)
var imgpath = ''; // What is the path to the loading image you want to display?
$(document).ready(function(event){
$('#'+ formid).submit(function(event){
$('#'+ formid +' input[type=submit]').after('<img src="'+ imgpath +'">').hide();
});
});
编辑:我也建议使用 AJAX 方法,但看看你帖子的写作风格,我认为你没有那么先进。