Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/27: Рейтинг темы: голосов - 27, средняя оценка - 4.93
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
1

пошаговая форма в 2 шага

27.07.2012, 14:39. Показов 5425. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго дня!


Помогите, пожалуйста, разобраться с пошаговой формой:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 
$add_status = false;
    
    if(isset($_POST['submitBtn']))
    {
    
    $error = array();
    
            // здесь проверяю корректность данных...
 
        if(count($error) == 0)
        {
            $add_status = true;
        }
    }
?>
 
 
 
<?php if($add_status == false) { ?>
 
// здесь форма ввода данных (Окно №1)
 
<?php ?>
 
 
<?php if($add_status == true) { ?>
 
// здесь форма показа введённых данных и отправка данных на почту админу  (Окно №2)
 
<?php ?>

Проблема в следующем: если пользователь будучи во Окне №2 нажмёт F5, то он попадает в Окно №1, где в полях остаются введённые им данные.

Ввод данных выглядит так:

HTML5
1
<input class="txtinput" name="fio" type="text" maxlength="50" value="<?php if(isset($fio)) echo $fio; ?>" />
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2012, 14:39
Ответы с готовыми решениями:

пошаговая форма импорта
Делаю пошаговую форму импорта из CSV файла, работать будет так: Шаг 1: выбираем что...

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов по WinForms уже не...

Форма 1 вызывает форму 2, форма 2 закрывается, форма 1 продолжает работать дальше
Вынес предстартовые действия формы1 в форму2 (там у меня проверка существования файлов, их закачка...

пошаговая детализация
найти периметр трапеции с вершинами в точках A(x1,0), B(x2,0), C(x2,y3), D(x1,y4). 1))...

17
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.07.2012, 14:48 2
бредовый какой то код вообще..

Добавлено через 44 секунды
я не пойму что это за окно №1 и окно №2? где они находятся, в одном файле или разных?
0
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
27.07.2012, 14:53  [ТС] 3
Окно №1 - это html код страницы с формой ввода данных, Окно №2 - это html код страницы с выводом данных. всё в одном файле. обработчик здесь же. бредовый код? предложите свой вариант, не бредовый...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.07.2012, 15:10 4
Цитата Сообщение от seoki Посмотреть сообщение
предложите свой вариант, не бредовый...
вариант чего, отправки сообщения на мыло?

Добавлено через 6 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
if(isset($_POST['send'])) {
$name = trim($_POST['name']);
$mail= trim($_POST['mail']);
$message= trim($_POST['message']);
if(empty($name)&&empty($mail)&&empty($message)) 
echo "Все поля пустые!";
else {
$err_text=(empty($name))?"<br>Введите имя<br>":"";
$err_text=(empty($mail))?"<br>Введите мыло<br>":"";
$err_text=(empty($message))?"<br>Введите текст сообщения<br>":"";
echo $err_text; // можете эту строчку в любое место поставить также
// теперь проверяем, если они пустые - отправляем данные или другие действия выполняем
if(empty($err_text)) {
// все ок, отправляем
$mail_to="email_komu";
$subject="You've get message from your site http://site.ru";
$text="From your site <a href='http://site.ru'>site.ru</a><br>";
$text.="Message from: <b>$name</b> <br>
His e-mail: <b>$mail</b><br>
Message text:<br>$message";
$headers="Content-type: text/html; charset=utf-8";
if(mail($mail_to,$subject,$text,$headers)) {
echo "Your name: <b>$name</b><br>","Your email: <b>$mail</b><br>";
echo "Your message: <br> $message";
echo "<BR><BR> The message was succesfully sended to admin";
}
else echo "The message wasn't sended to admin by undefined error";
}
else { // печатаем ошибку
 echo $err_text; 
}
}
}
else {
$err_text=""; //инициализация
}
?>
HTML5
1
2
3
4
5
6
<form method=post>
Name: <input type=text name=name><br>
E-mail: <input type=email name=mail><br>
Message: <textarea name=message></textarea><br>
<input type=submit name=send value="Отправить сообщение" >
</form>
если по простому

Добавлено через 1 минуту
вывод сообщений с ошибкой можете в любом месте поставить, независимо от того где сам код находится
0
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
27.07.2012, 15:13  [ТС] 5
KOPOJI, я понимаю что жарко, внимательность теряется...

"Проблема в следующем: если пользователь будучи в Окне №2 нажмёт F5, то он попадает в Окно №1, где в полях остаются введённые им данные.", тоесть пользователь уже всё ввёл в окне №1 и нажал ОТПРАВИТЬ, ему показызываются введённые им данные в окне №2... но если он нажмёт F5, то вновь попадёт в окно №1 - которое должно быть с пустыми полями, а оно с заполненными...

нужно чтобы если пользователь уже был в окне №2 все введённые им данные очищались при повторном заходе в окно №1
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
27.07.2012, 15:16 6
Цитата Сообщение от seoki Посмотреть сообщение
3
<input class="txtinput" name="fio" type="text" maxlength="50" value="<?php if(isset($fio)) echo $fio; ?>" />
нутак валуе уберите и не будет заполнятся форма
0
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
27.07.2012, 15:21  [ТС] 7
crautcher, value убрать не могу, так как после нажатия ОТПРАВИТЬ идёт проверка введённых данных и если что-то было введено не правильно в одном поле, то содержимое всех полей обнулится и ползователю придётся заново всё вводить...

нужно обнулять после показа окна №2, но попытки использовать
PHP
1
unset($_POST)
или
PHP
1
unset($_POST['name'])
не работают...

к тому же нужно сделать форму без $_GET...
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
27.07.2012, 15:53 8
отправляйте на страницу 2 данные аяксом а затем яваскриптом очищайте поля
0
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
27.07.2012, 16:09  [ТС] 9
crautcher, спасибо, был такой вариант, но нужен чистый php + html
0
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
27.07.2012, 16:15 10
в сессию индикатор добавляйте чтоб знать была отправленна форма или нет
0
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
27.07.2012, 16:24  [ТС] 11
crautcher, какраз сейчас добавлял использование сессий, но изначально хотел обойтись без них. просто попросили сделать чистый хтмл + пхп без вообще чего бы то нибыло, втом числе и сессий.

crautcher, Вы имеете ввиду вот так сделать?
PHP
1
<?php if($_SESSION['step'] == 1)  { } ?>
0
19 / 19 / 4
Регистрация: 12.07.2012
Сообщений: 92
27.07.2012, 16:28 12
могу предложить так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(isset($_POST['submitBtn']))
    {
    
    $error = array();
    
            // здесь проверяю корректность данных...
 
        if(count($error) == 0)
        {
            $add_status = true;
        }
    }
else{
//тут убиваем все ваши $fio если они инициализированы
}
0
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
27.07.2012, 16:34  [ТС] 13
Diavolingel, не годится, ведь пр наличии хотя бы одной ошибки убиваются все введённые данные.

в конечном итоге пришёл к такому в валуе

PHP
1
<?php if(isset($name) && count($error) > 0) echo $name; ?>
0
19 / 19 / 4
Регистрация: 12.07.2012
Сообщений: 92
27.07.2012, 16:36 14
Цитата Сообщение от seoki Посмотреть сообщение
Diavolingel, не годится, ведь пр наличии хотя бы одной ошибки убиваются все введённые данные.

в конечном итоге пришёл к такому в валуе

PHP
1
<?php if(isset($name) && count($error) > 0) echo $name; ?>
вообще-то в моем варианте данные убьются только если кнопка не была нажата =\ ты туда не попадешь, если попал в проверку ошибок
0
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
27.07.2012, 16:44  [ТС] 15
Цитата Сообщение от Diavolingel Посмотреть сообщение
вообще-то в моем варианте данные убьются только если кнопка не была нажата =\ ты туда не попадешь, если попал в проверку ошибок
странно, но у меня $_POST['submitBtn'] после F5 сохраняет значение что нажата кнопка...
0
19 / 19 / 4
Регистрация: 12.07.2012
Сообщений: 92
27.07.2012, 16:48 16
Цитата Сообщение от seoki Посмотреть сообщение
странно, но у меня $_POST['submitBtn'] после F5 сохраняет значение что нажата кнопка...
стоп, тогда бы по идеи ты должен был попадать во второе окно... хотя если у тебя ерроров по F5 больше 0, видимо какоето поле не сохраняется
0
3 / 3 / 0
Регистрация: 28.06.2012
Сообщений: 31
27.07.2012, 16:59  [ТС] 17
Diavolingel, нет, потому что только что добавил token, и присвоение переменной $add_status значения true попадает внутрь блока if token...

Ребята всем спасибо, благодаря вам сам додумался как сделать

это конечный результат, замена кода в валуе:

PHP
1
<?php if(isset($name) && count($error) > 0) echo $name; ?>
0
1 / 1 / 1
Регистрация: 14.03.2012
Сообщений: 78
04.12.2012, 18:20 18
а как сделать, чтобы при возврате к форме (например при неправильном вводе данных) данные не исчезали (желательно часть - только имя и текст комментариев!)
0
04.12.2012, 18:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2012, 18:20
Помогаю со студенческими работами здесь

Пошаговая детализация
Дана матрица размера 5 x 10. Поменять местами первый столбец с номером один и первый из столбцов,...

Пошаговая детализация
Дана квадратная матрица порядка M. Повернуть ее на 90 градусов в положительном направлении.

Пошаговая детализация
Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных главной,...

Пошаговая детализация
Треугольник АОВ с вершинами A(0,y1), O(0,0), B(x3,0) вращается вокруг прямой АО. Найти объем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru