Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的代码在使用javascript interval和clearInterval时仍然循环提交表单?_Javascript_Php - Fatal编程技术网

为什么我的代码在使用javascript interval和clearInterval时仍然循环提交表单?

为什么我的代码在使用javascript interval和clearInterval时仍然循环提交表单?,javascript,php,Javascript,Php,为什么我的代码仍然循环提交表单 <?PHP session_start(); include("connect.php"); ?> <form class="form" id="fid" method="post" action="" ENCTYPE = "multipart/form-data"> <input type="text" id="support" name="support" value="555"> </form> <sc

为什么我的代码仍然循环提交表单

<?PHP
session_start();
include("connect.php");
?>

<form class="form" id="fid" method="post" action="" ENCTYPE = "multipart/form-data">
<input type="text" id="support" name="support" value="555">
</form>
<script>
    var timer_var = null;

    timer_var = window.setInterval(function (){
        document.getElementById("fid").submit();
        window.clearInterval(timer_var);
    }, 1000);
</script>

<?PHP
if(isset($_POST["support"]))
{
?>
<script>
alert("test");
</script>
<?PHP
}
?>
当加载页面延迟1秒,然后同时通过javascript提交表单时
clearInterval
,所以我想知道为什么我的代码仍然循环提交表单

<?PHP
session_start();
include("connect.php");
?>

<form class="form" id="fid" method="post" action="" ENCTYPE = "multipart/form-data">
<input type="text" id="support" name="support" value="555">
</form>
<script>
    var timer_var = null;

    timer_var = window.setInterval(function (){
        document.getElementById("fid").submit();
        window.clearInterval(timer_var);
    }, 1000);
</script>

<?PHP
if(isset($_POST["support"]))
{
?>
<script>
alert("test");
</script>
<?PHP
}
?>

var定时器_var=null;
timer\u var=window.setInterval(函数(){
document.getElementById(“fid”).submit();
窗口清除间隔(计时器变量);
}, 1000);
警报(“测试”);

就个人而言,如果任务只需执行一次,我会使用setTimeout

让我给你解释一下这个问题。当页面加载时,您尝试执行一些代码。在此代码中,您提交的表单将重新加载页面。这恰好导致无限循环

如果希望在不重新加载页面的情况下提交数据,可以发出ajax请求,在该请求中发送在输入字段中输入的数据

在这里你可以找到一个非常清楚的解释:

为什么要使用
setInterval
?为什么不
setTimeout
?仍然循环提交表单sir。