我想在带有两个按钮的数据集中导航。我想每次只显示一个条目。理论上我将指针设置为下一个或上一个记录。但它不起作用。所以我尝试了另一种方式。
解释:$ picklistNr必须修复。它包含一个文章列表。我想在结果中导航设置LIMIT。
查询通过PDO返回一个数组,如下所示:
public function getPicklistItems($picklistNr,$pos = null){
$sql = "SELECT pitem.*, plist.PLHkey
FROM stpPicklistItems pitem
RIGHT JOIN stpArtikel2Pickliste a2p
ON (pitem.id = a2p.ArtikelID)
LEFT JOIN stpPickliste plist
ON (a2p.PicklistID = plist.PLHkey)
WHERE plist.PLHkey = '{$picklistNr}'
LIMIT {$pos} OFFSET 1
";
$sql = $this->db->prepare($sql);
$sql->execute();
return $sql->fetchAll(PDO::FETCH_NUM);
}
<?php
// Contents in my view
$pos = 0;
$picklist = $this->Picklist->getPicklistItems('60000',$pos);
if($_POST['nav'] == 'n') {
$pos += 1;
$picklist = $this->Picklist->getPicklistItems('60000',$pos);
}
if($_POST['nav'] == 'p') {
$pos -= 1;
$picklist = $this->Picklist->getPicklistItems('60000',$pos);
}
?>
<form method="post">
<input type="hidden" name="nav" value="n">
<button type="submit">Next</button>
</form>
<form method="post">
<input type="hidden" name="nav" value="p">
<button type="submit">Previous</button>
</form>
此更新代码的问题是,我可以提交一次表单。 $ pos从0变为1,输出符合预期。显示下一篇文章。但这只有一个。如果我第二次按下按钮,则没有任何反应。
如果按p按钮减小$ pos,结果为-1而不是$ pos-1。