首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多次单击提交按钮

多次单击提交按钮
EN

Stack Overflow用户
提问于 2011-01-17 01:36:00
回答 4查看 3.7K关注 0票数 1

我遇到了一个我无法解决的问题。我的重点是“点击”我的sybmit按钮,每次增加一个计数器,而这个计数器达到10。这是它第一次工作,但这就是它!我的测试代码如下:

代码语言:javascript
复制
<form name="testForm" method="post">
<?php $cnt=0; ?>

<input type="submit" name="next" id="next" value="NEXT"/>

<?php
  if(isset($_POST['next'])){
    if($cnt< 10){
      echo $cnt.' --> ';
      $cnt++;
      echo $cnt;
    }
  }
?>
</form>

仅打印0 --> 1,每次...请帮帮我!!

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-17 01:38:26

您的计数器不会在两次页面加载之间保存。您需要做的是将计数器保存到$_SESSION变量中

票数 2
EN

Stack Overflow用户

发布于 2011-01-17 01:47:29

您应该使用会话http://www.php.net/manual/en/book.session.php

代码语言:javascript
复制
<?php session_start()?>
<form name="testForm" method="post">
<?php 
    if (empty($_SESSION['cnt'])){
        $_SESSION['cnt'] = 0;
    }
?>

<input type="submit" name="next" id="next" value="NEXT"/>
<input type="submit" name="clear" id="clear" value="CLEAR"/>

<?php
    if(isset($_POST['next'])){
        if($_SESSION['cnt']< 10){
            echo $_SESSION['cnt'].' --> ';
            $_SESSION['cnt']++;
            echo $_SESSION['cnt'];
        }
    }
    if(isset($_POST['clear'])){
        $_SESSION['cnt'] = 0;
    }
?>
</form>
票数 2
EN

Stack Overflow用户

发布于 2011-01-17 01:43:12

您的PHP代码将在服务器上执行,而表单将显示在web浏览器中。每次用户单击"submit“时,表单都会提交到您的服务器,服务器会将$cnt变量设置为零。

您应该做的是将计数放入表单,如下所示:

代码语言:javascript
复制
<form name="testForm" method="post">

<?php $cnt = isset($_POST["cnt"]) ? $_POST["cnt"] : 0; ?>
<?php
  if(isset($_POST['next'])){
    if($cnt< 10){
      echo "<!-- ".$cnt.' --> ';
      $cnt++;
      echo $cnt;
    }
  }
?>
<input type="hidden" name="cnt" value="<?php echo $cnt;?>" />
<input type="submit" name="next" id="next" value="NEXT"/>
</form>

这样,当前计数将成为表单的一部分。当用户点击“提交”时,他们提交了当前的计数和他们提交了表单的事实。然后,您的服务器可以获取当前计数,对其进行递增,并将包含新计数的表单发回。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4706911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档