我遇到了一个我无法解决的问题。我的重点是“点击”我的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 --> 1,每次...请帮帮我!!
谢谢
发布于 2011-01-17 01:38:26
您的计数器不会在两次页面加载之间保存。您需要做的是将计数器保存到$_SESSION变量中
发布于 2011-01-17 01:47:29
您应该使用会话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>发布于 2011-01-17 01:43:12
您的PHP代码将在服务器上执行,而表单将显示在web浏览器中。每次用户单击"submit“时,表单都会提交到您的服务器,服务器会将$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>这样,当前计数将成为表单的一部分。当用户点击“提交”时,他们提交了当前的计数和他们提交了表单的事实。然后,您的服务器可以获取当前计数,对其进行递增,并将包含新计数的表单发回。
https://stackoverflow.com/questions/4706911
复制相似问题