我遇到了一个我无法解决的问题。我的观点是“点击”我的sybmit按钮,每次增加一个计数器,而这个计数器达到10.这是第一次有效,但就是这样! 我的测试代码如下:
<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 - &gt;每次打印1次......请帮助!!
由于
答案 0 :(得分:2)
您的计数器未在页面加载之间保存。您需要做的是将计数器保存到$_SESSION
变量
答案 1 :(得分:2)
您应该使用会话http://www.php.net/manual/en/book.session.php
<?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 :(得分:1)
您的PHP代码正在服务器上执行,而表单则显示在Web浏览器中。每次用户点击“提交”时,表单都会提交给您的服务器,这会将$ cnt变量设置为零。
你应该做的是将计数放入表格中,例如:
<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>
这样,当前计数将成为表单的一部分。当用户点击“提交”时,他们会提交当前计数以及他们提交表单的事实。然后,您的服务器可以获取当前计数,增加它并使用新计数发回表单。
答案 3 :(得分:0)
你必须使用会话。首先设置会话变量初始值1,如果它尚未初始化。初始化后,从第二次点击开始,每次点击都会计算+1,因为它将满足else语句
<?php
session_start();
?>
<html>
<head></head>
<body>
<form method="post" action="submit.php">
<input type="submit" name="count" value="Start counting" />
</form>
<?php
if(isset($_POST['count'])){
if(!($_SESSION['count'])){
$_SESSION['count'] = 1;
}else{
$count = $_SESSION['count'] + 1;
$_SESSION['count'] = $count;
}
}
echo $_SESSION['count'];
?>
</body>
</html>