2012-11-06 56 views
1

我想要做的事很簡單。PHP Ajax Shell Exec()進度

echo "doing a...." 
Start progress bar 
then exec("commandA") 
stop progress bar 

echo "doing b...." 
Start progress bar 
then exec("commandA") 
stop progress bar 

echo "doing c...." 
Start progress bar 
then exec("commandC") 
stop progress bar 

進度條並不需要是準確的,更多的是舒適,顯示有事情發生。

我讀過它可以使用jQuery和PHP/AJAX ..但我不知道如何。 任何人都有一個簡單的例子,我可以嘗試一下嗎?

謝謝:)

+0

如果您不知道服務器端部分,請告訴我編輯我的答案 –

回答

0

最簡單的方法是使用Twitter的引導:
http://twitter.github.com/bootstrap/components.html#progress

這是服務器側部:

$command = isset($_GET['command']) ? $_GET['command'] : null; 
if ($command == null) { 
    die("0"); 
} 
echo (int) exec($command); 

阿賈克斯你可以使用jQuery AJAX方法,如$.get , $.post , $.ajax

$.get('exec.php', { command: 'commandA'}, function(response) { 
    if(response == 1) { 
     //and you can easily change the width of the progress bar with jQuery: 
     $(".bar").css('width', '40%'); 
    } else { 
     alert("The execution got an error!"); 
    } 
} 
+0

感謝您的回覆。我不知道如何使用這個或如何添加我的exec()調用到它。對不起:( – MacMan

+0

@ user1635970我更新了答案並提供了服務器端的示例,但請注意,它可能是危險的,攻擊者可以在服務器上運行有害的命令,如果是您的答案,請將其標記爲接受的答案以幫助其他人 –

+0

謝謝,這是有道理的。不知道這將如何工作,因爲我從我的命令回來的結果不會給我任何有價值的東西..我應該更多地圍繞我的問題措辭等待「工作」的圖像不是進度條! – MacMan