[英]Jquery/Php returning processing status with Ajax POST
我正在處理一個處理Excel數據的頁面。
目前我有一個索引頁面,我曾經通過$ .ajax POST將一個JSON數據(文件名,選定列,工作表,...)提交到PHP頁面進行處理(迭代每一行都有已發布的選擇)。 但我想從處理頁面得到一些進展響應。 因為現在,它只是提交並處理后台的所有內容,而不知道它是否已完成。
有什么方法可以:
要么
如果最后響應行==開始,則顯示圖像
..過了一會兒(繼續檢查json的反應..),
如果最后一個響應行==完成,隱藏圖像?
我無法使用表單提交操作,因為我發送的是完整的JSON字符串而不是單獨的輸入值。
我在這里忽略了什么,或者這是不可能的(用我的處理方式)?
您需要對不同的PHP
文件使用ajax
調用,以獲取會話的進度。 我也這樣做了一次,我這樣做了:
使用Javascript
function getProgress(){
//console.log("progress called");
$.get( "getprogress.php", function( data ) {
//console.log(data);
var p = data.progress;
if (p!=100){
//set your progressbar here
}
}, "json");
}
在您啟動作業的功能中,您只需設置timeout
timeout = setInterval('getProgress()', 1000);
Getprogress.php
ob_start();
session_start();
session_write_close();
$output = array();
$output['progress'] = $_SESSION['progress'];
echo json_encode($output);
在您執行實際工作的PHP
文件中,您需要設置如下所示的進度:
session_start();
$_SESSION['progress'] = $progress;
session_write_close();
請記住使用session_write_close()
因為會話一次只能在一個進程中打開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.