Спасибо, но это же с задержкой... У меня вот какая ситуация:
HTML:
<head>
$('document').ready(function() {
$('#emails').ajaxForm( {
target: '#window',
success: function() {
//without anything spec...
}
});
});
</head>
<div id="window"></div>
<form id="emails" method="POST" action="php_scripts/admin_emails.php">
<table style="width:100%">
<tr>
<td style="width:50%">
Первая часть рассылки
</td>
<td style="width:50%">
Вторая часть рассылки
</td>
</tr>
<tr>
<td style="width:50%">
<input type="radio" name="check" value="1">
</td>
<td style="width:50%">
<input type="radio" name="check" value="2">
</td>
</tr>
<tr>
<td colspan="2">
<input id="emails-submit" type="image" src="images/project/submit.png">
</td>
</tr>
</table>
</form>
PHP:
<?php
include "functions.php";
echo "<br><div style='max-width:390px; height:430px; overflow-y:scroll;background:#fff; margin:auto; border-top-left-radius:35px 34px; border-bottom-left-radius:35px 34px; -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); box-shadow: 0 0 10px rgba(0,0,0,0.5);'><table>";
//////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////FIRST PART\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
if(isset($_POST['check'])) {
if($_POST['check'] == '1') {
$time = date("H:i:s");
echo "<tr><td>$time</td><td><h3>Рассылка первой части e-mail началась</h3></td></tr>";
$id = 0;
while($id<=3000) {
$col = 1;
$email = "";
while($col<=20) {
$query = "SELECT * FROM emails WHERE id='$id'";
$result = queryMysql($query);
if (mysql_num_rows($result)) {
$row = mysql_fetch_row($result);
$res = stripslashes($row[1]);
if($col<20) {
$email .= "$res,";
}
else {
$email .= "$res";
}
}
$col = $col+1;
$id = $id+1;
}
$time = date("H:i:s");
echo "<tr><td>$time</td><td>Рассылка стартовала</td></tr>";
if(5<9) {
$time = date("H:i:s");
echo "<tr><td>$time</td><td><center style='color:green'>Рассылка с успешно завершена</center></td></tr>";
}
else {
$time = date("H:i:s");
echo "<tr><td>$time</td><td><center style='color:red'>Ошибка! Неудалось отправить рассылку!</center></td></tr>";
}
}
$time = date("H:i:s");
echo "<tr><td>$time</td><td><h3>Рассылка первой части e-mail завершена</h3></td></tr>";
}
else if($_POST['check'] == '2') {
//////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
/////////////////////SECOND PART\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\
$time = date("H:i:s");
echo "<tr><td>$time</td><td><h3>Рассылка второй части e-mail началась</h3></td></tr>";
$id = 3001;
while($id<=6047) {
$col = 1;
$email = "";
while($col<=20) {
$query = "SELECT * FROM emails WHERE id='$id'";
$result = queryMysql($query);
if (mysql_num_rows($result)) {
$row = mysql_fetch_row($result);
$res = stripslashes($row[1]);
if($col<20) {
$email .= "$res,";
}
else {
$email .= "$res";
}
}
$col = $col+1;
$id = $id+1;
}
$time = date("H:i:s");
echo "<tr><td>$time</td><td> Рассылка стартовала</td></tr>";
if(5<9) {
$time = date("H:i:s");
echo "<tr><td>$time</td><td> <center style='color:green'>Рассылка успешно завершена</center></td></tr>";
}
else {
$time = date("H:i:s");
echo "<tr><td>$time</td><td> <center style='color:red'>Ошибка! Неудалось отправить рассылку</center></td></tr>";
}
$id = $id+1;
}
$time = date("H:i:s");
echo "<tr><td>$time</td><td> <h3>Рассылка второй части e-mail завершена</h3></td></tr>";
}
}
else {
$time = date("H:i:s");
echo "<tr><td>$time</td><td> <center style='color:red'>Ошибка! Не выбран тип рассылки!</center></td></tr>";
}
echo "<script> document.getElementById('ajaxloader-admin').style.display='none';document.getElementById('emails-submit').style.display='block' </script>";
echo "</table></div>";
?>
На условие 5<9 не обращайте внимание. На его месте потом будет условие отправилось письмо или нет.
На этом примере видно, что на стороне клиента нельзя заранее узнать, через сколько времени скрипт выдаст результат. Скрипт надо как-то остановить и вывести результата, а потом запустить снова. Я видел в интернете функцию flush(), но не знаю, относится ли на к этому случаю или нет... И как с ней работать тоже не разобрался, так как в мануале примеров не оказалось 