2012-10-31 5 views
0

Я хотел бы (после отправки формы) напечатать некоторый HTML-код до завершения всего процесса PHP. Приведенный ниже код открывает окно только после того, как копия() и система() производятся:Эхо перед запуском процесса

<script language="javascript"> 
window.open("copyProgress.php?source=<?php echo $_POST['element_100'];?>","","width=400,height=400,resizable=no,toolbar=no,location=no,directories=no,status=no,menubar=no"); 
</script> 

<?php 

sleep(3); 

//move the file to the net disk 
if(copy($tempUploadDir."\\".$_POST['element_100'], $dir.$subfolder."\\".$filename)) { 
    unlink($tempUploadDir."\\".$_POST['element_100']); 
} else { 
    die("problem with uploading file. ".$tempUploadDir."\\".$_POST['element_100']); 
} 

system("x264.exe $args"); 

?> 

Не могли бы вы предложить то, что нужно сделать, чтобы получить HTML (JS) код, показанный (и работа) в первую очередь?

Thanks, Mark.

ответ

0

Сбросить выходной буфер PHP с помощью ob_flush(). См http://php.net/manual/en/function.ob-flush.php

+0

Я пробовал, но не удался .. что я сделал: 'ob_start();' в начале документа, затем «ob_flush(); промывать(); сна (3);» до и даже после JS. К сожалению, никаких изменений. Что я сделал не так? – Mark

+0

Кроме того, после того, как я отправлю форму, она покажет страницу формы до конца процесса, а не, по крайней мере, маршрут к новой странице в соответствии с «действием» в форме. – Mark

+0

BTW, output_buffering = Off – Mark

0

Вы можете использовать перенаправление на другую страницу, как

$redirect = "http://www.example.com/"; 
header('Location: '.$redirect); 

и выполнять только Javascript там первым, и после нескольких второго редиректа обратно на эту страницу с помощью только PHP. Проблема в том, что javascript не будет выполнен, пока сервер не завершит свою работу и не получит HTML-код на стороне клиента.

+0

Это решение не сохранит мои данные формы. – Mark

Смежные вопросы