Домашнее задание php - последовательность

Пришло мне недавно личное сообщение на форуме 100нт с просьбой помочь с домашним заданием по php. Соль вопроса: сделать так что бы при нажатии на кнопку вперёд выводилась одна картинка, назад другая. Картинок всего 5, то есть должны повторяться.
Ну что ж, делать было нечего, дело было вечером. Т.к. из задания следует, что это начальный уровень программирования, извращатся с развратно объектно-ориентированным программированием не стал. Держим процедурный код.

<?php
if(!$_POST['index']) {
$index = 1;
} else {
$index = (int)$_POST['index'];
}
// ассоциативный массив для выборки $a[$index];
$a = array(
'1' => 'картинка1.jpg',
'2' => 'картинка2.jpg',
'3' => 'картинка3.jpg',
'4' => 'картинка4.jpg',
'5' => 'картинка5.jpg');
// если действие назад, обрабатываем $index-1, index--
if($_POST[back]) {
// если $index сравнен удачно с 1 - нам нельзя уходить в 0, переходим к 5ке
 if($index == 1) {
  $index = 5;
// иначе - уменьшаем index на еденицу
 } else {
  $index--;
 }
// если действие вперед - увеличиваем $index+1, index++
} elseif($_POST[next]) {
 if($index == 5) {
  $index = 1;
 } else {
$index++;
 }
}
?>
<html>
<body>
<form action="" method="post">
<input type="submit" name="back" value="назад">
<input type="submit" name="next" value="вперед">
<input type="hidden" name="index" value="<?=$index?>" >
</form>
<img src="<?=$a[$index]?>" />
<body></html>
  • +2
  • 30 сентября 2010, 20:08
  • zenn

Комментарии (3)

RSS свернуть / развернуть
+
0
А что, если картинок неизвестное кол-во? Например есть папка, в ней определенное кол-во картинок и их нужно поочередно выводить кнопками вперед и, соответственно, назад. Как реализовать сие?
avatar

cuthalir

  • 03 октября 2010, 09:58
+
0
Наверное делать сканинг папки и заносить все картинки в массив, после чего бегать по нему :)
avatar

ProGramMoS

  • 13 октября 2010, 14:31
+
0
Или задавать все лимитами на фор-ече. К примеру имена файлов делать 1.jpg, 2.jpg, 3.jpg и т д, а после выносить: for($i=0;$i<$max;$i++) { echo "" } :)
avatar

zenn

  • 13 октября 2010, 14:45

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.