Я хочу перемещаться по набору данных с двумя кнопками. Я хочу отображать только одну запись каждый раз. Теоретически я установил указатель на следующую или предыдущую запись. Но это не работает. Поэтому я попробовал это по-другому.
Для объяснения: $ picklistNr должен быть исправлен. Содержит список статей. Я хочу, чтобы перемещаться по результатам установки предела.
Запрос возвращает массив через 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.
Задача ещё не решена.
Других решений пока нет …