Я пытаюсь опубликовать некоторые данные до post.php
, и я хочу, чтобы результат отображался в form.html
, я использовал Ajax для получения вывода php без необходимости перезагрузки страницы, t выяснить, как очистить некоторые из php-вывода до завершения php-скрипта.ajax обновление в реальном времени без обновления страницы php
Я пробовал flush()
и ob_flush()
, но кажется, что они не работают при использовании с Ajax. Моя цель - update form.html
в режиме реального времени без перезагрузки страницы.
Вот пример того, чего я пытаюсь достичь. Исходный код:
form.html
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#myform").validate({
submitHandler: function(form) {
// do other stuff for a valid form
$.post('post.php', $("#myform").serialize(), function(data) {
$('#results').html(data);
});
}
});
});
</script>
</head>
<body>
<form name="myform" id="myform" action="" method="POST">
<!-- The Name form field -->
Name:
<input type="text" name="name" id="name" size="30" value=""/>
<br>
<!-- The Email form field -->
Email:
<input type="text" name="email" id="email" size="30" value=""/>
<br>
<!-- The Submit button -->
<input type="submit" value="Submit"/></div>
</form>
<!-- Result goes here -->
<div id="results"><div>
</body>
</html>
post.php
<?php
for($i=0;$i<2;$i++) {
echo "Your Name is ".$_POST['name']. "<br/>";
echo "Your E-mail is".$_POST['email']."<br/>";
echo "Waiting 2s <br/><br/>";
//I want to print the above before waiting 2 seconds.
sleep(2);// in real application this will be equivalent of some calculation that takes time.
}
?>
Что точка 'сна()' в PHP? Почему бы просто не использовать JavaScript 'setTimeout()' вместо этого? –
Попробуйте просто отозвать некоторые данные теста без использования цикла for. Что происходит? – 12hys
Google this => «ajax reload page every x seconds» –