0

こんにちは皆さん、スクリプト「sendeveryone.php」へのリンクを送信した後、このスクリプトが完了するまでにかなりの時間がかかるフォームがあります。そのため、読み込み中の画像を表示したいのですが、どうすればこれを達成できますか?

ありがとう

4

3 に答える 3

1

送信時に、javascript を使用して読み込み中の画像を表示できます。onclick="showLoading()"属性を送信ボタンに入れ、showLoading() JavaScript 関数を作成します。

于 2012-07-07T16:15:02.537 に答える
0

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 !

    }
}
于 2012-07-07T16:15:43.350 に答える
0

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 メソッドを使用することをお勧めしますが、投稿の文体を見ると、それほど高度ではないと思います。

于 2012-07-07T16:20:37.987 に答える