2011-06-13 2 views
0

3 개의 PHP 스크립트를 차례로 실행하는 배치 파일에 정의 된 프로세스가 있으며이 프로세스의 웹 프런트 엔드를 만들고 싶습니다. 이 프로세스는 누군가 웹 양식을 사용하여 파일을 업로드 할 때 실행됩니다.상태 업데이트로 웹 링크를 통해 PHP 배치 스크립트 실행

배치 파일의 각 스크립트를 몇 가지 유용한 메시지와 함께 실행 한 후 사용자에게 알릴 수있는 기능을 원하지만 올바른 방법이 무엇인지 잘 모르겠습니다.

나는 실행될 때 상태 메시지를 반향하는 PHP 스크립트로 3 개의 PHP 파일에 요청을 보내는 자바 스크립트 측면에서 생각하고있다. 하지만 세 가지 파일을 자바 스크립트가 별도로 호출하는 대신 클라이언트에서 단일 트리거로 세 파일을 실행하게하는 것이 좋습니다.

어떤 아이디어라도 가장 좋은 방법은 무엇일까요?

+0

내 질문을 명확히하자 : 나는 출력을 단계별로 표시하려고하므로 첫 번째 스크립트가 완료된 후 다음 스크립트가 시작되기 전에 첫 번째 메시지를 사용자에게 출력해야합니다. 그래서 이것은 스크립트가 지금까지 실행 된 상태 업데이트처럼 보일 것입니다. 지금까지 제안 된 솔루션은 모든 스크립트가 실행 된 후에 만 ​​이러한 메시지를 볼 수 있습니다. 이게 더 명확 해지기를 바란다. – zarilm

답변

0

3 개의 PHP 스크립트를 실행하고 출력을 반복하는 단일 PHP 파일을 만들 수 있습니다. 서버 측 요청 트로프 AJAX (나는 jQuery framework을 제안 함)를 실행함으로써 출력을 수집 할 수 있고 클라이언트 측 스크립트가 처리하여 결과를 사용자에게 보여줄 수 있습니다.

0

메시지를 데이터베이스 또는 다른 중앙 집중식 스토리지 시스템에 저장하십시오. 최신 메시지를 가져 오려면 ajax 호출을 사용하십시오.

0

서버의 PHP 파일로 ajax 호출을 보냅니다. 당신은 PHP 스크립트의 실행 방법을 지정하지 않지만 다른 PHP 파일 (함수가 무엇이든 처리해야 함)을 포함시킨 다음 주 파일에서 함수를 호출합니다. 이 함수는 배열로 수집 할 수있는 일종의 성공/오류 메시지를 반환해야합니다. 이 같은 뭔가 :

$response[] = firstFileProcessing(); //your function names should be better 
$response[] = secondFileProcessing(); 
$response[] = thirdFileProcessing(); 

모든 스크립트 완료 처리를 수행 : 그런 다음 다시 아약스 호출에 대한 당신의 성공 함수에서

echo json_encode(array("responses" => $response)); 

, 당신은 할 줄 :

var res = jQuery.parseJSON(response_from_server); 
//or if you told ajax to expect a json response, 
//response_from_server would automatically be an object based on the json sent 

그리고 각각의 단계를 거치며 php가 말한 것을 확인하십시오.

alert(res.responses[0]); //the first file said this 

아니면 훨씬 더 상세한 PHP에서 $ 응답을 만들 수 - $ 응답 [ '성공']와 자신의 배열, $ 응답은 [ 'MSG는'] = "! 일했다"TRUE =, 등 - 모든 양의 데이터.

관련 문제