每次我点击下一个按钮时,它都会粘在已在阵列中搜索的第一个元素中。这是我的示例代码:
<?php
$letter = 'A';
if (isset($_POST["next"]))
{
if(isset($next))
{
unset($letter);
$letter = $next;
}
$alphabet = array('A', 'B', 'C', 'D', 'E');
$get = array_search($letter, $alphabet);
$next = $alphabet[$get + 1];
echo $next;
}
?>
<form name="alphabet" method="post">
<input type="submit" name="next" value="next"/>
</form>
输出结果为:
B
我想要的输出是:
A-> B-> C-> D
每次点击下一个按钮时,如何进入每个下一个元素&amp;如果显示的最后一个元素我希望它转到数组中的第一个元素,就像它循环到第一个元素一样。我不想使用$ _GET我想要$ _POST。请帮我解决这个问题?谢谢。
答案 0 :(得分:3)
试试这个。您需要将变量发布回脚本,以便在每次加载页面时,它可以知道以前的值是什么。
<?php
$letter = 'A';
if (isset($_POST["letter"]))
{
$letter = $_POST["letter"];
$alphabet = array('A', 'B', 'C', 'D', 'E');
$get = array_search($letter, $alphabet);
if($get < (count($alphabet) - 1))
{
$get++;
}
else
{
$get = 0;
}
$letter = $alphabet[$get];
echo $letter;
}
?>
<form name="alphabet" method="post">
<input type="hidden" name="letter" value="<?php echo $letter ?>" />
<input type="submit" value="next" />
</form>
编辑:已添加对索引变量$get
的检查,只有在它不在数组末尾时才会递增,否则应重置。
答案 1 :(得分:1)
试试这个。我们将当前字母作为隐藏的帖子变量传递。
<?php
$alphabet = array('A', 'B', 'C', 'D', 'E');
$next = 'A'; //for the first call of page.
if (isset($_POST["next"]))
{
$letter = $_POST['letter'];
$get = array_search($letter, $alphabet);
$next = $alphabet[($get + 1)%count($alphabet)]; //for loop over array
}
echo $next;
?>
<form name="alphabet" method="post">
<input type="hidden" name="letter" value="<?php echo $next;?>"/>
<input type="submit" name="next" value="next"/>
</form>