我正在用这一块砖打砖墙 - 这是我的代码 - 它意味着有一个前进和后退按钮,允许我单步执行数组。但由于一些奇怪的原因,它只停留在两个数字之间,并拒绝显示数组中的下一个索引。
//$someArray is an array of ten items.
$_SESSION['theResult'] = $someArray;
$prev = $_SESSION['theResult'] [0]--;
$next = $_SESSION['theResult'] [1]++;
echo "<div id='button_div'>
<form action='" . $_SERVER['PHP_SELF'] . "'> <input type='hidden' value='" . $prev. "' name=\"id\" /> <input style='float:left;' class='strong_bttn' type='submit' value='<< Previous'></form>
<form action='" . $_SERVER['PHP_SELF'] . "'><input type='hidden' value='" . $next. "' name='id' /><input style='float:right;' class='strong_bttn' type='submit' value='Next >>'></form></div>";
我想要的是当我按下一个按钮时,按钮移动到数组中的下一个索引,如果按下prev,它会向后移动。但它只是卡在1和0上。
我不知道这段代码是否对任何人都有意义。我只是感到沮丧和厌倦,我只想放弃:(
答案 0 :(得分:0)
我认为问题在于:
action='" . $_SERVER['PHP_SELF'] . "'
它都发送到当前页面,这就是为什么你只能获得2个值。我假设,在页面启动时,它只显示第一页并链接到第二页。
答案 1 :(得分:0)
为什么在以下代码中确定$ prev和$ next时更改值:
$prev = $_SESSION['theResult'] [0]--;
$next = $_SESSION['theResult'] [1]++;
您应该将$ prev和$ next的值基于当前页面使用的值,如下所示:
$prev = $currentPageId - 1;
$next = $currentPageId + 1;
答案 2 :(得分:0)
我不确定这是否是问题,但是当你使用++或 - 在变量之后,首先发生赋值,然后变量递增。分配,然后递增。所以你基本上是这样做的:
$prev = $_SESSION['theResult'] [0];
$_SESSION['theResult'] [0]--;
$next = $_SESSION['theResult'] [1];
$_SESSION['theResult'] [1]++;
如果要将递增的数字存储到$ prev / $ next变量,请将++ - 放在变量之前。
$prev = --$_SESSION['theResult'] [0];
$next = ++$_SESSION['theResult'] [1];
答案 3 :(得分:0)
您是否正在尝试遍历结果数组?如果是,也许这会有所帮助:
<?PHP
// is an array of ten items.
$_SESSION['theResult'] = array('a','b','c','d','e','f','g');
$max = count($_SESSION['theResult']);
if(isset($_GET['prevBttn']))
{
$prev=($next=$_GET['previous'])-1;
if($next==0 )
$prev=0;
echo $_SESSION['theResult'][$next];
}
elseif(isset($_GET['nextBttn']))
{
$next=($prev=$_GET['next'])+1;
if($next ==$max )
$next=$prev;
echo $_SESSION['theResult'][$next];
}
else{
(int)$prev=$next=key($_SESSION['theResult']);
echo array_shift($_SESSION['theResult']);
}
?>
<div id='button_div'>
<form action="<?PHP echo $_SERVER['PHP_SELF'];?>">
<input type='hidden' value="<?PHP echo $prev;?>" name="previous"/>
<input type='hidden' value="<?PHP echo $next;?>" name='next' />
<input style='float:left;' name="prevBttn" class='strong_bttn' type='submit' value='<< Previous'>
<input style='float:right;' name="nextBttn" class='strong_bttn' type='submit' value='Next >>'>
</form>
</div>