Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сделать так чтобы формы для ввода данных исчезли если пользователь написал все верно.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
HTML
Отправлено: 14 Июля, 2013 - 19:12:56
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)

[+]


Например:
PHP:
скопировать код в буфер обмена
  1. <form method="POST" action="">
  2. <?PHP
  3. $submit=$_POST['submit'];
  4. $name=$_POST['name'];
  5. if($submit) {
  6. if(empty($name)) {
  7. echo "Введите имя!"; }
  8. elseif(strlen($name)<=5)
  9. {
  10. echo "Слишком короткое имя"; }
  11. else { echo "Ваша имя $name"; }
  12. }
  13. ?>
  14. Ваша имя:
  15. <input type="text" name="name">
  16. <input type="submit" name="submit" value="Войти">


Думаю вопрос понятен.

(Отредактировано автором: 15 Июля, 2013 - 13:06:13)

 
 Top
AlexAnder
Отправлено: 14 Июля, 2013 - 19:20:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




Например:
if($_SERVER["REQUEST_METHOD"] == "POST" && $submit && isset($submit) && !empty($submit) && $_POST['submit'] && isset($_POST['submit']) && !empty($_POST['submit'])) echo "обрабатываем форму"; else echo "выводим форму";
Думаю ответ понятен.

(Добавление)
вроде в твоём стиле написал
(Добавление)
интересно, а как ты вообще будешь продумывать более сложную логику/архитектуру приложения, если задаешь такие вопросы?

(Отредактировано автором: 14 Июля, 2013 - 19:26:34)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
HTML
Отправлено: 14 Июля, 2013 - 19:41:24
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)

[+]


AlexAnder пишет:

интересно, а как ты вообще будешь продумывать более сложную логику/архитектуру приложения, если задаешь такие вопросы?

Ну я в PHP еще новичок, месяц назад начел изучать или 2
(Добавление)
AlexAnder пишет:
Например:
if($_SERVER["REQUEST_METHOD"] == "POST" && $submit && isset($submit) && !empty($submit) && $_POST['submit'] && isset($_POST['submit']) && !empty($_POST['submit'])) echo "обрабатываем форму"; else echo "выводим форму";
Думаю ответ понятен.

Если честно непонятен. Спомощью чего их удаляют?
AlexAnder пишет:
[PHP]if($_SERVER["REQUEST_METHOD"] == "POST")[/PHP

Так что ле?
 
 Top
soffrick
Отправлено: 14 Июля, 2013 - 20:04:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




HTML пишет:
Спомощью чего их удаляют?

с помощью JS
[code=javascript]var elem = document.getElementById("myform");
elem.parentNode.removeChild(elem); //el.remove() или el.style.display = "none";[/code

(Отредактировано автором: 14 Июля, 2013 - 20:13:52)



-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
condpattern
Отправлено: 14 Июля, 2013 - 20:21:37
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




Не очень понял, что именно вы хотите.
Исходя из своего понимания, могу предложить два варианта:
1. Через PHP
Если после обработки формы вы убеждаетесь, что все ок, в конце задаете любую переменную, например, $hasError как false

И заключаете вашу форму между этими тегами:
PHP:
скопировать код в буфер обмена
  1.             <?PHP if(isset($hasError)) { ?>
  2.                Если переменная $hasError false эту форму вы не увидите.
  3.             <?PHP } ?>  


2. Через JavaScript
1) В CSS создаете класс, в котором прописываете атрибут hidden="true"
2) Добавляете JavaScript, который бы при верном заполнении добавлял бы ваш класс
Пример скрипта JS если проверка идет при помощи плагина jquery.validate:
CODE (javascript):
скопировать код в буфер обмена
  1. <script src="js/jquery.min.js"></script>
  2.       <script src="js/jquery.validate.pack.js" type="text/javascript"></script>
  3.       <script type="text/javascript">
  4.          $(document).ready(function(){
  5.          $('#form-contact').validate(
  6.          {
  7.          rules: {
  8.          login: {
  9.          minlength: 3,
  10.          maxlength: 15,
  11.          required: true
  12.          },
  13.          email: {
  14.          required: true,
  15.          email: true
  16.          },
  17.          },
  18.          highlight: function(element) {
  19.          $(element).closest('.имя класса к которому нужно добавить класс').addClass('класс, который вы добавляете');
  20.          }
  21.          });
  22.          });
  23.       </script>
 
 Top
HTML
Отправлено: 15 Июля, 2013 - 09:38:02
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)

[+]


condpattern пишет:

Если после обработки формы вы убеждаетесь, что все ок, в конце задаете любую переменную, например, $hasError как false


В конце чего?
Так что ле?
PHP:
скопировать код в буфер обмена
  1. if($submit) { if(empty($name)) {
  2. echo "Введите имя!"; }
  3.  
  4. elseif(strlen($name)<=5)
  5.  
  6. {
  7.  
  8. echo "Слишком короткое имя"; }
  9.  
  10. else { $hasError = false; } ?>
  11. <?PHP if(isset($hasError)) { ?>
  12. <form method="POST" action="">
  13.  
  14. Ваша имя:
  15. <input type="text" name="name">
  16. <input type="submit" name="submit"
  17. value="Войти"> <?PHP } } ?>

(Добавление)
Или нет?

(Отредактировано автором: 15 Июля, 2013 - 09:39:34)

 
 Top
condpattern
Отправлено: 15 Июля, 2013 - 10:42:39
Post Id


Новичок


Покинул форум
Сообщений всего: 18
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)




HTML пишет:

Если после обработки формы вы убеждаетесь, что все ок, в конце задаете любую переменную, например, $hasError как false


В конце чего?
Так что ле?
PHP:
скопировать код в буфер обмена
  1. if($submit) { if(empty($name)) {
  2. echo "Введите имя!"; }
  3.  
  4. elseif(strlen($name)<=5)
  5.  
  6. {
  7.  
  8. echo "Слишком короткое имя"; }
  9.  
  10. else { $hasError = false; } ?>
  11. <?PHP if(isset($hasError)) { ?>
  12. <form method="POST" action="">
  13.  
  14. Ваша имя:
  15. <input type="text" name="name">
  16. <input type="submit" name="submit"
  17. value="Войти"> <?PHP } } ?>

(Добавление)
Или нет?[/quote]

Да. Только в начале нужно задать значение переменной тру, чтобы форма отображалась и у пользователя была возможность ввести данные.

PHP:
скопировать код в буфер обмена
  1. $hasError = true;
  2. if($submit) { if(empty($name)) {
  3. echo "Введите имя!"; }
  4.  
  5. elseif(strlen($name)<=5)
  6.  
  7. {
  8.  
  9. echo "Слишком короткое имя"; }
  10.  
  11. else { $hasError = false; } ?>
  12. <?PHP if(isset($hasError)) { ?>
  13. <form method="POST" action="">
  14.  
  15. Ваша имя:
  16. <input type="text" name="name">
  17. <input type="submit" name="submit"
  18. value="Войти"> <?PHP } } ?>


Должно работать.
Только присвоение переменной тру вам нужно не просто так вставить сверху, а в ваш скрипт проверки- авторизован ли пользователь или нет.
Т.е. если пользователь не авторизован, ставите true и форма видна, если вход выполнен, ставите фолс и форма не видна.
Если речь идет не об авторизации или регистрации, все равно у вас должен быть скрипт проверки, вводил ли уже пользователь значения в сие поле или еще нет.

(Отредактировано автором: 15 Июля, 2013 - 10:43:57)

 
 Top
Мелкий Супермодератор
Отправлено: 15 Июля, 2013 - 10:49:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




condpattern пишет:
if(isset($hasError)) { ?>               Если переменная $hasError false эту форму вы не увидите.

Вы ошибаетесь.
И при false и при true isset скажет "истинно" и форма будет.


-----
PostgreSQL DBA
 
 Top
AlexAnder
Отправлено: 15 Июля, 2013 - 10:57:40
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




какой вопрос такие и ответы Ха-ха
(Добавление)

автор небось уже и ооп изучает, при этом не зная как работает пхп


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
HTML
Отправлено: 15 Июля, 2013 - 11:18:44
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)

[+]


Да я тут уже запутался, кто то говорить что так, кто то не так. Можеть кто нибудь напишет правильный ответ?
 
 Top
AlexAnder
Отправлено: 15 Июля, 2013 - 11:32:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




HTML пишет:
Да я тут уже запутался, кто то говорить что так, кто то не так. Можеть кто нибудь напишет правильный ответ?

форма отправлена && заполнена правильно ? выводим результат : выводим форму с указанием на ошибки
(Добавление)
или
форма отправлена ? обрабатываем её : выводим форму

(Отредактировано автором: 15 Июля, 2013 - 11:32:49)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
HTML
Отправлено: 15 Июля, 2013 - 11:35:18
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)

[+]


AlexAnder пишет:
форма отправлена && заполнена правильно ? выводим результат : выводим форму с указанием на ошибки

Да, а куда форма денется если нет ошибок?
(Добавление)
AlexAnder пишет:

или
форма отправлена ? обрабатываем её : выводим форму

Мне надо чтобы форма не выводилась на экран, если нет ошибок
(Добавление)
Это скрипт не работает, форму не выводит изначально
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $submit=$_POST['submit'];
  3. $name=$_POST['name'];
  4. $ok=TRUE;
  5. if(isset($submit)) {
  6. if(empty($name)) {
  7. echo "<br>Введите имя!"; }
  8. elseif(strlen($name)<=5)
  9. {
  10. echo "<br>Слишком короткое имя"; }
  11. else {
  12. $ok=FALSE;
  13. } ?>
  14. <?PHP if(isset($ok)) {
  15. ?>
  16. <form method="POST" action="">
  17. Ваша имя:
  18. <input type="text" name="name">
  19. <br><input type="submit" name="submit" value="Войти">
  20. <?PHP } } ?>
 
 Top
VenZell
Отправлено: 15 Июля, 2013 - 12:15:13
Post Id


Частый гость


Покинул форум
Сообщений всего: 237
Дата рег-ции: Июнь 2013  


Помог: 12 раз(а)





Заменить на:


Пример, чтобы вы поняли:
PHP:
скопировать код в буфер обмена
  1. $ok = false;
  2. echo (isset($ok)) ? 'true' : 'false'; //выведет true
  3. $ok = true;
  4. echo (isset($ok)) ? 'true' : 'false'; //выведет true
 
 Top
soffrick
Отправлено: 15 Июля, 2013 - 12:28:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




VenZell пишет:
Пример, чтобы вы поняли:
PHP:
скопировать код в буфер обмена
  1. $ok = false;
  2. echo (isset($ok)) ? 'true' : 'false'; //выведет true
  3. $ok = true;
  4. echo (isset($ok)) ? 'true' : 'false'; //выведет true

бесполезно, он читает между строк:
Мелкий пишет:
И при false и при true isset скажет "истинно" и форма будет


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
HTML
Отправлено: 15 Июля, 2013 - 13:02:21
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Июль 2013  


Помог: 0 раз(а)

[+]


VenZell пишет:
Заменить на:



Всеравно не выводит форму. Форма проста исчезла. Может дело в submite ? Я весь код написал внутри него.
Вот так:
PHP:
скопировать код в буфер обмена
  1. if(isset($submit) { //весь код здесь
  2. }

(Отредактировано автором: 15 Июля, 2013 - 13:05:19)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB