PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: После валидации на jquery форма в любом случае отправляется
Поиск в теме | Версия для печати
Влад_имир
Отправлено: 27 Марта, 2015 - 20:57:07
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2015
Помог: 0 раз(а)
Здравствуйте.
Ниже индексный файл
PHP:
скопировать код в буфер обмена
< link rel= "stylesheet" type= "text/css" href= "style.css" />
< script type= "text/javascript" src= "js/jquery-1.5.2.min.js" ></ script>
< script type= "text/javascript" src= "js/jquery.validate.min.js" ></ script>
< script type= "text/javascript" src= "js/myscripts.js" ></ script>
< script src= "http://jqueryvalidation.org/files/dist/additional-methods.min.js" ></ script>
< script type= "text/javascript" >
$( document) . ready( function ( ) {
$( "#formdata" ) . on( "click" , function ( ) { //это обработчик нажатия кнопки ОТПРАВИТЬ
$( "#formdata" ) . validate( ) ;
$. ajax( { // инициализируем ajax запрос
type: 'POST' , // отправляем в POST формате
url: 'obrabot.php' , // путь до обработчика, у нас он лежит в той же папке
data: data, // данные для отправки
cache: false ,
target: '#p1' ,
success: function ( data) {
if ( data ) {
alert ( "OKyjyuj" ) ;
$( "#p1" ) . text( data) ;
}
else
{
alert( "no ok" ) ;
}
}
} ) ;
return false ;
} ) ;
} ) ;
</script>
</ head>
< body>
< div style= "display: flex;" >
< p> Введите чило: </ p>
< form id= "formdata" method= "POST" action= 'obrabot.php' style= "margin: 16px;" >
< input name= 'int' type= 'int' /> < br />< br /> < input type= 'submit' name= 'Submit' id= "submitsend" value= 'Отправить' />
</ form>
< p id= "p1" ></ p>
</ body>
</ html>
Еще ниже файл myscript.js
CODE (
javascript ):
скопировать код в буфер обмена
$( document) .ready ( function ( ) {
debug: true
jQuery.validator .addMethod (
'regexp' ,
function ( value, element, regexp) {
var re = new RegExp( regexp) ;
return this .optional ( element) || re.test ( value) ;
} ,
""
) ;
$( "#formdata" ) .validate ( {
rules: {
int: {
required: true ,
minlength: 4,
maxlength: 4,
number : true ,
regexp: '^[1-9]{1}[0-9]*$'
}
} ,
messages: {
int: {
required: "поле не заполнено или заполнено не верно" ,
minlength: "в поле должно быть минимум 4 символа" ,
maxlength: "В поле должно быть максимум 4 символа" ,
number : "В поле должны быть только цифры" ,
regexp: "Число не должно начинаться на ноль!!"
}
}
} ) ;
} ) ;
Еще ниже файл обработчик не весь :
PHP:
скопировать код в буфер обмена
if ( isset ( $_POST [ 'int' ] ) ) { $str = $_POST [ 'int' ] ; } if ( isset ( $_POST [ 'int' ] ) ) { $zifra = ( int
) $_POST [ 'int' ] ; }
/* echo "Переменная \$zifra имеет тип - ". (gettype($zifra)). "<br/>"; */
if ( $zifra <= 1000)
{
$errors [ ] = "Нельзя вводить число начинающееся с нуля!!" ;
/* echo "Нельзя вводить число начинающееся с нуля!!"; */
}
$length_arr1 = count ( $arr1 ) ;
$length_result = count ( $result ) ; /* print_r($result);
print_r($length_result); */
if ( $length_result < $length_arr1 )
{
$errors [ ] = "Нельзя вводить повторяющиеся цифры!!" ;
/* echo "Нельзя вводить повторяющиеся цифры!!"; */
}
foreach ( $errors as $msg ) {
echo $msg ;
}
return false ;
}
А теперь вопрос как сделать чтобы форма , если не прошла валидацию, не отправлялась. И еще в файле обработчике не выводит print_r($lenght_arr1); а $length_result=count($result); выводит.
Влад_имир
Отправлено: 28 Марта, 2015 - 17:36:34
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2015
Помог: 0 раз(а)
Faraon-san пишет:
если не достиг успеха, то посмотреть что возвращает можно в консоли, в браузере F12 там вкладка console, там вводишь $("#formdata").validate()
если не нашел, то следующий код:
CODE (
javascript ):
скопировать код в буфер обмена
<script type = "text/javascript" >
$( document) .ready ( function ( ) {
$( "#formdata" ) .validate ( ) ;
$( "#formdata" ) .submit ( function ( ) { //это обработчик нажатия кнопки ОТПРАВИТЬ
var data = $( this ) .serialize ( ) ;
$.ajax ( { // инициализируем ajax запрос
type : 'POST' , // отправляем в POST формате
url: 'obrabot.php' , // путь до обработчика, у нас он лежит в той же папке
data: data, // данные для отправки
cache: false ,
success: function ( data) {
if ( data ) {
alert ( "OKyjyuj" ) ;
$( "#p1" ) .text ( data) ;
}
else
{
alert ( "no ok" ) ;
}
}
} ) ;
return false ;
} ) ;
</script>
Вот так вот работает. Faraon-san спасибо огромное !!!(Отредактировано автором: 28 Марта, 2015 - 17:41:55)
Влад_имир
Отправлено: 31 Марта, 2015 - 23:45:26
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2015
Помог: 0 раз(а)
Спустя некоторое время опять заглючило. Помогло вот это
http://answer[dot]techwikihow[dot]com/71[dot][dot][dot]idate-issue[dot]html
Вообщем перенес весь jquery в один файл myscript. Код его ниже, может кому пригодиться.
CODE (
javascript ):
скопировать код в буфер обмена
$( document) .ready ( function ( ) {
jQuery.validator .addMethod (
'regexp' ,
function ( value, element, regexp) {
var re = new RegExp( regexp) ;
return this .optional ( element) || re.test ( value) ;
} ,
""
) ;
$( "#formdata" ) .validate ( {
rules: {
int: {
required: true ,
minlength: 4,
maxlength: 4,
number : true ,
regexp: '^[1-9]{1}[0-9]*$'
}
} ,
messages: {
int: {
required: "поле не заполнено или заполнено не верно" ,
minlength: "в поле должно быть минимум 4 символа" ,
maxlength: "В поле должно быть максимум 4 символа" ,
number : "В поле должны быть только цифры" ,
regexp: "Число не должно начинаться на ноль!!"
}
} ,
submitHandler: function ( ) { //это обработчик нажатия кнопки ОТПРАВИТЬ
var data = $( "#formdata" ) .serialize ( ) ;
$.ajax ( { // инициализируем ajax запрос
type : 'POST' , // отправляем в POST формате
url: '../obrabot.php' , // путь до обработчика
data: data, // данные для отправки
cache: false ,
success: function ( data) {
if ( data ) {
alert ( "OKyjyuj" ) ;
$( "#p1" ) .text ( data) ;
}
else
{
alert ( "no ok" ) ;
}
}
} ) ;
return false ;
}
} ) ;
} ) ;
Пока вроде работает.(Отредактировано автором: 31 Марта, 2015 - 23:46:11)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB