2012-11-06 5 views
1

내가하려고하는 일은 아주 간단하다.PHP Ajax 쉘 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를 사용하여 읽을 수는 있지만 읽지는 못했습니다. 누구나 간단한 예제를 사용하여 작업 해 볼 수 있습니까?

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

아약스 당신 같은 jQuery를 아약스 방법을 사용할 수 있습니다
http://twitter.github.com/bootstrap/components.html#progress

이 서버 측의 일부입니다

감사합니다 :)

+0

서버 측 부분을 모른다면 내 대답을 편집하라고하십시오 –

답변

0

가장 간단한 방법은 사용하는 트위터 부트 스트랩입니다 $.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