Если это индикатор загрузки:
Первая часть - это установка чего-то на стороне PHP, к которому вы можете подключиться.
Расширение APC включает механизм перехвата загрузки. Возможно, он уже установлен, поскольку это обычный кэш кода операции для PHP (и он будет включен по умолчанию в PHP6).
После установки APC вам необходимо настроить как страницу PHP, так и стороны обработчика PHP.
PHP страница:
<?php
$uploadId = uniqid('', true);
?>
<script type="text/javascript">
function uploadProgress() {
$.ajax({
url: 'url/to/handler.php',
data: ({ progressId: <?php echo $uploadId; ?> }),
success: displayProgress
});
}
function displayProgress(data) {
// Do something with data['current'] and data['total'] here
// Possibly using a JQuery UI Progressbar
// http://jqueryui.com/demos/progressbar/
}
</script>
...
<!-- Your other form elements would be on this form, too -->
<form action="step4.php" enctype="multipart/form-data">
<input type="hidden" name="APC_UPLOAD_PROGRESS" value="<?php echo uploadId; ?>" />
<input type="file" name="file" />
<input type="submit" onClick="setInterval(uploadProgress, 1000); return false;" />
</form>
Вам также понадобится скрипт на стороне PHP для вызова через AJAX. Прошло немного времени с тех пор, как я сделал AJAX с PHP, но что-то вроде этого должно сделать:
<?php
$returnData = array('current' => 0, 'total' => 0);
if (!empty($_GET['progressId'])) {
$uploadProgress = apc_fetch('upload_' . $_GET['progressId']);
if (!empty($uploadProgress)) {
$returnData['current'] = $uploadProgress['current'];
$returnData['total'] = $uploadProgress['total'];
}
}
echo json_encode($returnData);
Редактировать: Ой, в оригинальном сообщении нет ничего, что говорит, что это индикатор загрузки