Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > кнопки вперёд и назад


Автор: supercelt 2.11.2008, 19:42
Есть инсталяция некоего скрипта. Проходит в 3 этапа. На первом этапе должна быть кнопка далее, на втором этапе - кнопки назад и далее, соотв. в третем тоже. Нужно что бы кнопка примерно была такого вида

Код

<input type="submit" name="step" value="2" />

Это кнопка перехода вперёд к шагу 2

Код

<input type="submit" name="step" value="1" />  <input type="submit" name="step" value="3" />

Эти вперёд и назад в шаге 2.

в обработчике конструкция 
Код

switch($_POST['step'])
{
case 1:
//шаг 1
break;

case 2:
//обработка шага 2
break;

case 3:
//обработка шага 3
break;

default :
//шаг1
break;
}


Смысл в том, что мне нужно что бы на кнопках были написаны слова Вперёд и Назад. За это отвечает value, а в нем стоит цифра перехода. И если туда прописать слова, то switch-case не получится. Подскажите пожалуйста как обычно правильно делать такие штуки).

ПС Извините, если это тема к ХТМЛ, но к ПХП тоже отношение имеет

Автор: amazing 2.11.2008, 19:53
Цитата(supercelt @  2.11.2008,  19:42 Найти цитируемый пост)
ПС Извините, если это тема к ХТМЛ, но к ПХП тоже отношение имеет 

к РНР не какого!!!

можно так делать
Код

<input type="hidden" name="step" value="2">  
<input type="submit" name="back" value="Назад"> || <input type="submit" name="go" value="Вперед">


т.е. передаешь значение с помощью скрытого поля. можно в куку писать значение и т.д.

Автор: NLspieler 2.11.2008, 20:36
supercelt,
а чем тебя не устраивает конструкция if-elseif-...-else?

amazing,
зачем эти неоправданные усложнения?

Автор: bars80080 2.11.2008, 22:45
имхо, надо проще:
кнопка вперёд - обычный submit, с <input type="hidden" name="step" value="2">, в котором задаётся номер следующего уровня
назад - поставить <a href="javascript:history.go(-1);">назад</a> без вяких наворотов, что с тебя снимает все проблемы по автозаполнению предыдущих полей

Автор: NLspieler 3.11.2008, 00:53
Предлагаю следующее решение:

Код

<input type="submit" name="step" value="text2" />

<input type="submit" name="step" value="text1" />  <input type="submit" name="step" value="text3" />


Код


if ($_POST['step']=="text1")
{
  $_POST['step'] = 1 ;
}
elseif ($_POST['step']=="text2")
{
  $_POST['step'] = 2 ;
}
elseif ($_POST['step']=="text3")
{
  $_POST['step'] = 3 ;
}
else 
{
  $_POST['step'] = 0 ;
}

#Далее идет твой скрипт, без каких либо изменений.




Автор: supercelt 3.11.2008, 13:43
Спасибо всем

amazing, твой вариант не совсем подходит, потому что все кнопрки у меня в одной форме. И тогда придётся тоже для второй кнопки делать хидден с тем же именем step. Получится два поля с одинаковым именем. Видимо попробую сделать как сказал bars80080. Но просто не хочется свя\зываться  с JS, браузеры штукуа глючная.

Автор: gibbzy 4.11.2008, 09:53
А почему не подходит вариант передавать шаги в get ? тоесть в ссылке ?
а кнопки назад и вперёд писать типа  <a href=file.php?step=2>на второй шаг</a>

Автор: bars80080 4.11.2008, 10:58
Цитата(gibbzy @  4.11.2008,  08:53 Найти цитируемый пост)
А почему не подходит вариант передавать шаги в get ? тоесть в ссылке ?

потому что это визард, необходимо передавать данные внесённые в форму

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)