Well, for lack of a better solution (and mainly lack of time to invent one)
I decided to go with a simple indeterminate progress bar. I've already
found more uses for this than just uploading files and thought some of you
might have a use for it in your scripts which take a while to complete.
- Jacob
//
// In the referring page (i.e. submitting a form):
head
script type=text/javascript
var progress_window;
function open_progress_window(caption) {
progress_window = window.open(progress.php?caption= + caption,
progress_window, width=350, height=120, menubar=no, statusbar=no,
toolbar=no);
}
function close_progress_window() {
if (progress_window != null) {
progress_window.close();
}
}
/script
body onUnload=close_progress_window();
form onSubmit=open_progress_window('Work+In+Progress...');
!-- form vars here --
/form
/body
//
// Source for progress.php
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
http://www.w3.org/TR/html4/loose.dtd;
html
head
title?php echo $caption; ?/title
meta http-equiv=Content-Type content=text/html; charset=utf-8
meta http-equiv=Content-Style-Type content=text/css
meta http-equiv=Content-Script-Type content=text/javascript
style type=text/css
body {
background: #ff;
color: #00;
font-family: Arial, sans-serif;
}
td.ProgressOn {
background: #ff;
}
td.ProgressOff {
background: #ff;
}
td.PageHeader {
font-weight: bold;
font-size: 18px;
text-align: center;
padding-bottom: 10px;
}
/style
script type=text/javascript
function begin_progress() {
var i = 0;
setTimeout(update_progress( + i + , true), 100);
}
function update_progress(i, forward) {
if (forward) {
if (i == 0) { off = i; }
else { off = (i - 1); }
} else {
if (i == 19) { off = i; }
else { off = (i + 1); }
}
eval(document.all.td + off + .className = \ProgressOff\;);
eval(document.all.td + i + .className = \ProgressOn\;);
if (forward) {
if (i == 19) {
forward = false;
i--;
} else {
i++;
}
} else {
if (i == 0) {
forward = true;
i++;
} else {
i--;
}
}
setTimeout(update_progress( + i + , + forward + ), 100);
}
/script
/head
body onLoad=begin_progress();
table border=0 width=100% height=100% cellpadding=0 cellspacing=0
tr
td align=center valign=middle
table border=0 cellpadding=5 cellspacing=0
tr
td class=PageHeader?php echo $caption; ?/td
/tr
tr
td
table border=0 cellpadding=5
cellspacing=0 style=border: 1px inset;
tr
?php
for ($i = 0; $i 20; $i++) {
echo td
class=\ProgressOff\ id=\td.$i.\nbsp;/td\n;
}
?
/tr
/table
/td
/tr
/table
/td
/tr
/table
/body
/html
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php