Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
vlad-55
14 / 14 / 4
Регистрация: 21.02.2009
Сообщений: 1,885
1

Предварительная проверка при вводе

16.12.2012, 12:17. Просмотров 1163. Ответов 5
Метки нет (Все метки)

Ввод информации производится вот в такую форму:

HTML5
1
2
3
4
5
6
<form method="POST" action="w-6.php">   
<input name="producer">
<input name="artikul">
<input name="name_tov">
<input type=submit value="Найти">
</form>
В обработчике w-6.php производится обработка информации, которой предшествует проверка двух обстоятельств:
1. Форма не пустая
2. Хотя бы в одной введенной строке больше двух знаков.

PHP
1
2
3
4
5
// Проверка правильности заполненя формы
if ((!$producer) AND (!$artikul) AND (!$name_tov)) die ("Не заданы условия поиска");
if ((strlen($producer) < 3) AND (strlen ($artikul) < 3) AND (strlen ($name_tov) < 3)) die ("Мало знаков");
 
   // ОБРАБОТКА РЕЗУЛЬТАТОВ ВВОДА
Можно ли эту проверку осуществлять до отправки информации в обработчик, без перезагрузки страницы?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 12:17
Ответы с готовыми решениями:

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

предварительная загрузка рисунков
предварительно загружается рисунок, например: function predload() { a1=new Image;...

Предварительная загрузка картинки
Здравствуйте. Не совсем уверен, что пишу нужной теме, но Вы меня уж простите. Задача такая. Сразу...

Не работает предварительная загрузка рисунков
Люди, подскажите, почему не работает предварительная загрузка рисунков? Делаю следующее: ...

Предварительная обработка формы Javascript
Доброго! Вопрос такой: как сделать предварительную обработку данных формы перед отправкой? То...

5
kalabuni
супермизантроп
Эксперт JS
3414 / 2701 / 646
Регистрация: 18.04.2012
Сообщений: 8,215
16.12.2012, 12:48 2
Цитата Сообщение от vlad-55 Посмотреть сообщение
В обработчике w-6.php производится обработка информации, которой предшествует проверка двух обстоятельств:
1. Форма не пустая
2. Хотя бы в одной введенной строке больше двух знаков.
вы неверно описали работу файла w-6.php

на самом деле в нём проверяется:
1. обязательное наличие значений во всех трёх полях формы (иначе - непустота полей формы, а не самой формы)
[форма - это теги <form>...</form> и весь HTML-код между ними; раз есть <input>'ы - значит, форма уже не "пустая" ]

2. не "хотя бы в одной", а именно во всех трёх полях одновременно значения должны иметь не менее 3-х символов
------

разумеется, всё это легко проверить и в самом браузере

однако, всякая браузерная проверка - она при желании легко обходится (например, простым отключением javascript'a)
поэтому те строки php-программы, которые вы здесь привели [и смысла которых вы не поняли] вам всё равно следует в php-программе оставить

прописываете
-- либо <input type="submit" value="Найти" onclick="return myFunc (this.form)">
-- либо <form method="POST" action="w-6.php" onsubmit="return myFunc (this.form)">
[для особо ретивых ПОВТОРЯЮ - "либо так, либо этак"; "и там, и там" - не надо]

Javascript
1
2
3
4
5
6
7
8
function myFunc (frm)
{
if ((!frm.producer.value.length) && (!frm.artikul.value.length) && (!frm.name_tov.value.length))
   {alert ('Не заданы условия поиска'); return false}
if ((frm.producer.value.length < 3) && (frm.artikul.value.length < 3) && (frm.name_tov.value.length < 3))
   {alert ('Мало знаков'); return false}
return true;
}
UPDATE:
проверять просто !frm.чего-то.value будет, кстати, как бы неправильно
и здесь, и в php-коде
потому что пользователь, например, может ввести во все три поля по десять нулей
и первое условие отвергнет сабмит (хотя поля и не пустые и в них больше 2-х символов)
или может ввести во все три поля слово false и первое условие опять же отвергнет сабмит
1
vlad-55
14 / 14 / 4
Регистрация: 21.02.2009
Сообщений: 1,885
16.12.2012, 13:02  [ТС] 3
Что-то у меня ничего не получилось...

Использовал второй вариант, зеленый. Вписал функцию между тегами <head>. И она вылезла в браузере (скриншот).
0
Миниатюры
Предварительная проверка при вводе  
kalabuni
супермизантроп
Эксперт JS
3414 / 2701 / 646
Регистрация: 18.04.2012
Сообщений: 8,215
16.12.2012, 13:04 4
а теги <script> до функции и </script> после функции за вас кто вписывать будет?
александр сергеевич?
1
vlad-55
14 / 14 / 4
Регистрация: 21.02.2009
Сообщений: 1,885
16.12.2012, 13:17  [ТС] 5
Спасибо, с тегами я лопухнулся!

Теперь текст скрипта в браузер не пролезает, но толку от него никакого: при клике на пустую форму просто уходим на обработчик.
0
kalabuni
супермизантроп
Эксперт JS
3414 / 2701 / 646
Регистрация: 18.04.2012
Сообщений: 8,215
17.12.2012, 00:48 6
Цитата Сообщение от vlad-55 Посмотреть сообщение
толку от него никакого
точно!


исправляем мои ошибки:
во-первых:
-- либо <input type="submit" value="Найти" onclick="return myFunc (this.form)">
-- либо <form method="POST" action="w-6.php" onsubmit="return myFunc (this)"> (а не this.form)

во-вторых:
Javascript
1
2
3
4
5
6
7
8
9
function myFunc (frm)
{
if ((!frm.producer.value.length) || (!frm.artikul.value.length) || (!frm.name_tov.value.length))
   {alert ('Íå çàäàíû óñëîâèÿ ïîèñêà'); return false}
if ((frm.producer.value.length < 3) || (frm.artikul.value.length < 3) || (frm.name_tov.value.length < 3))
   {alert ('Ìàëî çíàêîâ'); return false}
return true;
}
// везде && заменил на ||
1
17.12.2012, 00:48
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2012, 00:48

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

Предварительная загрузка изображения из аттрибута
Делаю простейшую задачу. Надо с помощью jQuery(обязательно именно скриптом, а не css) менять src у...

Проверка чисел при вводе
Здравсвуйте. Помогите пожалуйста с кодом. Нужно с клавиатур вводить числа в масив, их надо...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.