0

PHP 内で大きな .sql ファイルを実行する際の問題 ( PHP で実行される MySQL ファイル内で PHP セッション変数を使用する) が処理されたので、作成した読み込みバー (.gif) と表示するメッセージを表示したいと思います。ブラウザがページを読み込んでいないとユーザーに思わせたくないため、ユーザーデータがデータベースにアップロードされていることを確認します(ファイルサイズによっては、このプロセスに数分かかる場合があるため)。

<img src='includes/loadingbar.gif' width='128' height='15' alt=''/></p>
Uploading your school data into the database, please wait.
This process can take a while depending on your file size and connection.

上記は、クエリの実行中に表示したい画像とメッセージですが、データの更新中に白い読み込み画面を通過できないようです。クエリの後、クエリの前に、PHP コマンドの前後に配置された HTML コードとしてメッセージをエコーし​​ようとしましたが、まだこの邪悪な白い画面しか表示されません。クエリが完了するまで (皮肉なことに) 読み込みメッセージが表示されないたびに、現在使用している形式でクエリ中に表示する方法はありますか、それとも他のプログラミング言語に向ける必要がありますか? どうもありがとう!

編集:

php タグの前後でコマンドを使用しようとしましたが、クエリが完了するまで動作しません。

<div id="message" div align="center"><img src="includes/loadingbar.gif" width="128"
 height="15" alt=""/>
<br />
Please wait while your school data is being uploaded into the database.
This can take a short while depending on your file size and connection.
</div>

<script type="text/javascript">
$(document).ready(function()
{$('message').show(); });
</script>


<?php   
session_start();

$page_title = 'SQLTest';
include ('includes/header.html');

require ('mldb_connect.php');
(etc...)

そして最後に:

    if ($populateresult)
   {
   $replace = $_SESSION['path'].$_SESSION['CentreNo'].'_'.$_SESSION['School'].'_'
       .date('dmY_His').'.txt' ;

    rename ($path, $replace) ;
   }
 ?>

<script type="text/javascript">
$(window).load(function()
{$('message').hide();});
</script>

私はこれで何が間違っていますか?

4

3 に答える 3

1

jQuery を使用すると、次のようなことができます。

$("#imgId").show(); // Show loading image.

PHP スクリプトを実行します。

$.post( "your_script.php", function( data ) {
    // $("#imgId").hide(); // Hide loading image.
    window.location = "http://www.example.com"; // Redirect to URL.
});

更新: imgId は画像の ID です。例えば:

<img src="image.png" id="imgId" />
于 2013-11-06T10:53:02.573 に答える
0

2 つの異なる解決策をお伝えできます。

ソル 1.ページの読み込み中にクエリが起動する場合: (Ajax を使用しない場合):

この場合、jquery を使用できます。

$(document).ready(function(){
  $('img').show();

});

$(window).load(function(){
      $('img').hide();
});

これにより、ローダー画像が非表示になったときにのみ、ページのすべての要素が読み込まれるようになります。

ソル 2

Ajax経由でやりたい場合。Ajax をトリガーするイベントが発生したときに画像を表示し、Ajax の.success()または.done()で画像ローダーを非表示にします。

于 2013-11-06T10:46:06.023 に答える