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

Отображение данных, введенных пользователем в форму и не только

12.02.2014, 20:45. Показов 1391. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем, сначала на странице отображается форма с текстовыми полями, кнопкой. Нужно чтобы при нажатии кнопки, в зависимости от введенной информации, (например, заполняющий является админом или просто пользователем) появлялась разная информация. Т.е. форма исчезала и появлялась информация.
Я сам реализовывал это через создание функций, внутри которых был html код для каждого отдельно случая, т.е.
function showForm, function showAdminInformation, function showUserInformation. Мне кажется это не совсем удачный вариант. Может есть что-то получше?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2014, 20:45
Ответы с готовыми решениями:

Проверка введенных пользователем данных
Доброго времени суток... Помогите, пожалуйста. Не понимаю, в чём тут проблема. Создал проверку...

Проверка введенных пользователем данных
Доброго времени суток. Подскажите пожалуйста: Есть форма регистрации, для логина есть требование:...

Сохранение введенных пользователем данных
День добрый. Вопрос такой, ответа на него пока не нашел. В php не силен, но надо сделать вот, что:...

Сохранение введенных пользователем данных и вывод сообщений об ошибках
Разрабатываю страницу регистрации. Использую паттерн MVC. На странице висит форма засылаемая...

5
Марсианин
87 / 87 / 22
Регистрация: 11.10.2012
Сообщений: 333
12.02.2014, 20:47 2
glasierr, вообще сам принцип обычный, если используется 1 "шаблон" вывода, а туда просто подставляются разные значения. Вот если бы ты показал код функций и html файла - может что-то посоветовал бы исправить. Хотя возвращение HTML из функции - плохое решение. С функции должны возвращаться значения. Весь HTML должен быть в самом HTML
0
-17 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 20
12.02.2014, 21:00  [ТС] 3
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<HTML>
<Head>
    <Title>Forms</Title>
</Head>
<Body>
    <?php
    function Show_form($login, $name, $b_date)
    {?>
        <Form action = "Lab2.php", method = "post">
        <Table border = "0", align = "center">
            <tr width = "400">
                <td align = "left", width = "100">Login</td>
                <td>
                    <input type = "text", name = "login", value = "<?php print $login ?>" >
                </td>
            </tr>
            <tr width = "400">
                <td align = "left">Password</td>
                <td>
                    <input type = "password", name = "password1", value = "" >
                </td>
            </tr>
            <tr width = "400">
                <td align = "left">Confirm password</td>
                <td>
                    <input type = "password", name = "password2", value = "" >
                </td>
            </tr>
            <tr width = "400">
                <td align = "left">Name</td>
                <td>
                    <input type = "text", name = "name", value = "<?php print $name ?>" >
                </td>
            </tr>
            <tr width = "400">
                <td align = "left">Date of birth</td>
                <td>
                    <input type = "text", name = "b_date", value = "<?php print $b_date ?>" >
                </td>
            </tr>
            <tr width = "400">
                <td align = "left">Type this number into field
                    <input type = "test", name = "numb", size = "3", value = <?php echo rand(100000, 999999);?>>
                </td>
                <td>
                    <input type = "text", name = "number", value = "<?php print $login ?>" >
                </td>
            </tr>
            <tr width = "400">
                <td align = "right">
                    <input type = "submit", name = "submit", value = "Next">
                </td>
                <td align = "left">
                    <input type = "reset", name = "reset", value = "Clear">
                </td>
            </tr>
        </Table>    
        </Form>
        <?php
    }
 
    function Check_form($login, $name, $b_date, $password1, $password2, $numb, $number)
    {
        if(!$login || !$name || !$b_date || $password1 != $password2 || $number != $numb)
        {
            echo '<h2>There are some problems!</h2>';
            if(!$login)
            {
                echo 'You should write your login in appropriate field<br>';
            }
            if(!$name)
            {
                echo 'You should write your name in appropriate field<br>';
            }
            if(!$b_date)
            {
                echo 'You should write your day of birth in appropriate field<br>';
            }
            if($password1 != $password2)
            {
                echo 'Passwords don\'t match!<br>';
            }
            if($number != $numb)
            {
                echo 'Wrong number<br>'.$number.''.$numb;
            }
            Show_form($login,$name,$b_date);
        }
        else
        {
            Confirm_form($login, $name, $b_date, $password1, $password2);
        }
    }
 
    function Confirm_form($login, $name, $b_date, $password1, $password2)
    {
        echo '<h2>Thank you for registration!</h2>';
        echo '<h4>You can read your information below</h4>';
        echo '<br>Login: '.$login.'<br>Password: '.$password1.'<br>Name: '.$name;
    }
 
 
 
    if(!$_POST['submit'])
    {
        echo '<h3 align = "center">Fill all of the fields</h3>';    
        Show_form("","","");
    }
    else
    {
        Check_form($_POST['login'], $_POST['name'], $_POST['b_date'], $_POST['password1'], 
                    $_POST['password2'], $_POST['numb'], $_POST['number']);
    }
    ?>
</Body>
</HTML>
Есть такой код, примерно отображающий мою идею, но не совсем. Может есть варианты получше для реализации подобного? Файл прикреплю. Скачать файл
0
Марсианин
87 / 87 / 22
Регистрация: 11.10.2012
Сообщений: 333
12.02.2014, 21:31 4
Цитата Сообщение от glasierr Посмотреть сообщение
<Form action = "Lab2.php", method = "post">
* * * * <Table border = "0", align = "center">
1. запятые между арибутами HTML тегов не нужны.
2.
HTML5
1
2
if(!$login || !$name || !$b_date || $password1 != $password2 || $number != $numb)
        {
проверили раз
и снова проверяете
Цитата Сообщение от glasierr Посмотреть сообщение
if(!$login)
* * * * * * {
* * * * * * * * echo 'You should write your login in appropriate field<br>';
* * * * * * }
* * * * * * if(!$name)
* * * * * * {
* * * * * * * * echo 'You should write your name in appropriate field<br>';
* * * * * * }
* * * * * * if(!$b_date)
* * * * * * {
* * * * * * * * echo 'You should write your day of birth in appropriate field<br>';
* * * * * * }
* * * * * * if($password1 != $password2)
* * * * * * {
* * * * * * * * echo 'Passwords don\'t match!<br>';
* * * * * * }
* * * * * * if($number != $numb)
* * * * * * {
* * * * * * * * echo 'Wrong number<br>'.$number.''.$numb;
* * * * * * }
Лучше все ошибки соберайте в массив ошибок.
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
function Check_form($login, $name, $b_date, $password1, $password2, $numb, $number) {
            if (!$login) {
                $errArr[] = 'You should write your login in appropriate field';
            }
            if (!$name) {
                $errArr[] = 'You should write your name in appropriate field';
            }
            if (!$b_date) {
                $errArr = 'You should write your day of birth in appropriate field';
            }
            if ($password1 != $password2) {
                $errArr[] = "Passwords don't match!";
            }
            if ($number != $numb) {
                $errArr[] = 'Wrong number<br>' . $number . ' != ' . $numb;
            }
 
            if (empty($errArr)) {
                Confirm_form($login, $name, $b_date, $password1, $password2);
            } else {
                Show_form($login, $name, $b_date);
                foreach ($errArr as $value) {
                    echo $value . '<br>';
                }
            }
        }
Добавлено через 7 минут
И убирай из функций html. Функции - сторона php, HTML - сторона клиента. Эти стороны важно максимально разделить.
1
-17 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 20
12.02.2014, 22:24  [ТС] 5
Вот за идею с массивом спасибо, а то мне покоя не давал тот мой ужасный код

Добавлено через 51 минуту
Цитата Сообщение от MarlboroRed Посмотреть сообщение
И убирай из функций html. Функции - сторона php, HTML - сторона клиента. Эти стороны важно максимально разделить.
Вот в этом и проблема, что я не знаю как сделать так, чтобы в зависимости от того, что происходит в php, отображалось разное html. Сначала - форма, а после нажатия кнопки - что-то другое. Или просто разбросать по разным файлам разные отображения и не заморачиваться?
0
Марсианин
87 / 87 / 22
Регистрация: 11.10.2012
Сообщений: 333
12.02.2014, 22:42 6
Цитата Сообщение от glasierr Посмотреть сообщение
Сначала - форма, а после нажатия кнопки - что-то другое
Да
Вот для примера.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    if ($_POST['submit']){
        if ($_POST['i']==1){ echo "Красавчик";
    }else{
        echo "Это не то, что я хотел";
        }
    }else{?>
<form action="" method="post">
    <input type="text" name="i">
    <input type="submit" name="submit">
</form>
    <?}?>
0
12.02.2014, 22:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2014, 22:42
Помогаю со студенческими работами здесь

Отправка введенных данных в форму
Помогите пожалуйста написать скрипт на отправку данных введенных в форму (или в базу, или в файл).Я...

Синхронизация данных введенных в форму на сайте, с бд
Нужна помощь!=) Есть форма заказа фасадов (оригинал https://agtplus.ua/create-fasades) Когда мы...

Сохранение данных, введенных пользователем
Как из spinBox при нажатии pushButton получить значение, введенное пользователем и сохранить его в...

Проверка введенных пользователем данных
Пожалуйста, помогите разобраться с такой проблемой: нужно написать клиентский скрипт, проверяющий...

Сохранение введенных пользователем данных
Ребят прошу вашей помощи, возникла проблема, при записи введенных данных в текстовый файл, блок...

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


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

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