2016-12-20 5 views
0

jQueryを使ってスクリプトに "Live Feedback"を表示するには?AJAXフォームの送信依頼中にライブスクリプト出力を表示する方法は?

私はbuttonを持っていますが、私は処理のためにフォームを提出しています。処理には長い時間がかかります。私は、<div id="progress"></div>を持っていて、注文処理スクリプトが何をしているのかをライブ進捗報告したいと思っています。すべてがうまくいけば、View Orderスクリプトにリダイレクトしたい場合は、進捗レポートを表示するだけです(表示順にリダイレクトされません)

どのようにですか?

$("#placeorderbutton").click(function(e) { 
    e.preventDefault(); 
    this.innerHTML = 'Placing Order...'; 
    this.disabled = true; 
    $.ajax({ 
     type: 'post', 
     url: 'process_order.php', 
     data: $('form#order').serialize(), 
     success: function(data) { 
      $("#main").load('view_order.php');    
     } 
    }); 
}); 

を、私は私のprocess_orderファイルにprint文を持っているにもかかわらず、彼らはどこにでも画面上に表示されていません。現在、私はこれを持っています。もちろん、そうではありません...私はjQuery/AJAXをビルドする方法がわかりません。

今後の進め方についてはわかりません。

+0

成功するのは、ajaxが完全に完了し成功した場合のみです。 – Steve

+0

言い換えれば、私が探しているものは不可能です、正しい? – Dennis

+0

私は通常、1つのajax呼び出しでプロセスを起動し、タイマーの別のajaxを起動して状態を確認します。 – Steve

答えて

1

長いプロセスを開始してから、タイマーを開始してステータスをポーリングする必要があります。これが価値がある以上に高価になることはあまりありません。

$("#placeorderbutton").click(function(e) { 
    e.preventDefault(); 
    this.innerHTML = 'Placing Order...'; 
    this.disabled = true; 
    $.ajax({ 
     type: 'post', 
     url: 'process_order.php', 
     data: $('form#order').serialize(), 
     success: function(data) { 
      $("#main").load('view_order.php');    
     } 
    }); 
    setTimer($.ajax({ 
     type: 'post', 
     url: 'view_order.php', 
     data: $('form#order').serialize(), 
     success: function(data) { 
      $("#main").append(data);    
     } 
    }), 30000); //check every 30 Seconds 
}); 
関連する問題