当我点击开始它应该开始执行代码,当我点击停止它应该停止执行并打印它执行的任何内容。 当我运行以下代码时,它无法正常工作 实际上我想要的是当我点击开始它应该开始打印数字从1到50之间当我点击停止它应该打印仍然执行的数字
<form method="post">
<input type="submit" value="start" id="start" name="start" />
<input type="submit" value="stop" id="stop" name="stop" />
</form>
if ( isset( $_POST['start'] ) ) {
for ( $i = 1; $i <= 50; $i++ ) {
echo $i."<br/>";
if ( isset( $_POST['stop'] ) ) {
die( print_r( $i ) );
}
sleep('1');
}
}
答案 0 :(得分:2)
使用jquery
<input type="button" value="start" id="start" name="start" />
<input type="button" value="stop" id="stop" name="stop" />
<div id='output'></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"
type="text/javascript"></script>
<script>
var timeOut = null;
var i = 0;
var printStuff = function() {
if(i>=50) return;
i++;
$("#output").append(i+" ");
timeOut = setTimeout(printStuff,1000);
};
$("#start").click(function() {
timeOut = setTimeout(printStuff,1000);
});
$("#stop").click(function() {
clearTimeout(timeOut);
});
</script>
答案 1 :(得分:1)
正如大家所说,这不应该由php完成,最好是通过javascript或任何其他客户端语言来完成。
但是如果你试图通过这段代码学习php或它的某些方面,那么你可以使用这段代码。
<?php
header( 'Content-type: text/html; charset=utf-8' );
?>
<form method="GET">
<input type="submit" value="start" id="start" name="start"/>
<input type="submit" value="stop" id="stop" name="stop" onclick="document.getElementById('trackback').value = document.getElementById('counter_port').innerHTML; return true;"/>
<input type="hidden" value="" id='trackback' name='trackback'/>
<span id='counter_port' name='counter_port'>
<?php
if(isset($_REQUEST['start'])){
echo "<br/>";
for($i=1;$i<=50;$i++){
echo $i."<br/>";
if(sleep(1) != 0) {
echo 'sleep failed';
break;
}
flush();
ob_flush();
}
} else {
echo $_REQUEST['trackback'];
}
?>
</span>
</form>
同样,这是我们在这里所做的错误方式。
答案 2 :(得分:-1)
尝试以下代码可能会对您有所帮助
if ( isset( $_POST['start'] ) ) {
for ( $i = 1; $i <= 50; $i++ ) {
echo $i."<br/>";
sleep('1');
}
}
if ( isset( $_POST['stop'] ) ) {
exit("Code is stopped");
}