Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Обработка ошибок

Сообщения:  [1-5] 

 
 автор: lirik   (07.06.2008 в 07:52)   письмо автору
 
   для: ONYX   (07.06.2008 в 06:23)
 

Я знаю что они должны быть поидеи, но когда я код с восклицательными знаками поставил , он у меня работал тупо , убрал и всё норм. , почему , незнаю!

   
 
 автор: ONYX   (07.06.2008 в 06:23)   письмо автору
 
   для: lirik   (07.06.2008 в 03:17)
 

ТАМ НУЖНЫ ВОСКЛИЦАТЕЛЬНЫЕ ЗНАКИ!
Иначе код тупо работает в обратном направлении: принимает всякую чушь и пустые поля и не принимает правильно введенные данные.

   
 
 автор: lirik   (07.06.2008 в 03:17)   письмо автору
 
   для: ONYX   (07.06.2008 в 03:04)
 

только там восклицательные знаки не нужны !
function post(){ 
    var fio = document.getElementById('fio').value; 
    var name = document.getElementById('name').value; 
    if(fio.match(/[^\w]+/im)){ 
        document.getElementById('errFio').style.display = 'block' 
        return false; 
    }else document.getElementById('errFio').style.display = 'none' 
    if(name.match(/[^\w]+/im)){ 
        document.getElementById('errName').style.display = 'block' 
        return false; 
    }else document.getElementById('errName').style.display = 'none' 
}

   
 
 автор: ONYX   (07.06.2008 в 03:04)   письмо автору
 
   для: V@ldem@r   (06.06.2008 в 19:21)
 

<html>
<head>
</head>
<style>
#errFio{display:none; color:#FF0000;}
#errName{display:none; color:#FF0000;}
</style>
<body>
<form name=form action="add.php" method="post"> 
<table> 
<tr><td>Фамилия </td><td>
<input size=20 id="fio"  type=text name=FIO   value=''>
<div id="errFio">Неверно введена фамилия</div>
</td></tr> 
<tr><td>Имя</td><td>
<input size=20 id="name" type=text name=name  value=''>
<div id="errName">Неверно введено имя</div>
</td></tr> 
<tr><td></td><td><input type="submit" onClick="return post()" value="Добавить"></td></tr> 
</body>
<script>
function post(){
    var fio = document.getElementById('fio').value;
    var name = document.getElementById('name').value;
    if(!fio.match(/[^\w]+/im)){
        document.getElementById('errFio').style.display = 'block'
        return false;
    }else document.getElementById('errFio').style.display = 'none'
    if(!name.match(/[^\w]+/im)){
        document.getElementById('errName').style.display = 'block'
        return false;
    }else document.getElementById('errName').style.display = 'none'
}
</script>
</html>

   
 
 автор: V@ldem@r   (06.06.2008 в 19:21)   письмо автору
 
 

Всем привет!
Не подскажит ли мне кто-нибудь как сделать так, чтобы при вводе данных в поле формы, если информация не удовлетворяет регулярному выражению, то ошибка выводилась на этой же странице, где находится форма. И чтобы страница не обновлялась.
У меня 2 скрипта:
1 скрипт (form.php)

<form name=form action="add.php" method="post">
<table>
<tr><td>Фамилия </td><td><input size=20  type=text name=FIO   value=''></td></tr>
<tr><td>Имя</td><td><input size=20  type=text name=name  value=''></td></tr>
<tr><td></td><td><input  type=submit value='Добавить'></td></tr>


2 скрипт обработчик (add.php)


$FIO = $_POST['FIO'];
$name = $_POST['name'];

if(!preg_match("|^[\w]+$|i", $FIO)) 
exit("невeрный формат <p><a href=form.php?kod_abityra=$kod_abityra>Назад</a></p>");

if(!preg_match("|^[\w]+$|i", $name)) 
exit("невeрный формат имени<p><a href=form.php?kod_abityra=$kod_abityra>Назад</a></p>");
......

Ошибка выходит на новой странице и когда переходишь по ссылке "назад", то введенные данные исчезают, приходиться вводить все заново.

Как можно решить данную проблему? Я предполагаю, что скорее всего нужно все в одном скрипте делать, но пока не знаю как.

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования