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 :: После валидации на jquery форма в любом случае отправляется

 PHP.SU

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


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

> Описание: После валидации на jquery форма в любом случае отправляется
Влад_имир
Отправлено: 27 Марта, 2015 - 20:57:07
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2015  


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




Здравствуйте.
Ниже индексный файл
PHP:
скопировать код в буфер обмена
  1.  
  2. <link rel="stylesheet" type="text/css" href="style.css" />
  3.     <script type="text/javascript" src="js/jquery-1.5.2.min.js"></script>
  4.     <script type="text/javascript" src="js/jquery.validate.min.js"></script>
  5.     <script type="text/javascript" src="js/myscripts.js"></script>
  6.     <script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script>
  7. <script type="text/javascript">
  8. $(document).ready(function(){
  9.     $("#formdata").on("click",function () { //это обработчик нажатия кнопки ОТПРАВИТЬ
  10.        $("#formdata").validate();
  11.         var data = $(this).serialize();
  12.         $.ajax({// инициализируем ajax запрос
  13.             type: 'POST', // отправляем в POST формате
  14.             url: 'obrabot.php', // путь до обработчика, у нас он лежит в той же папке
  15.             data: data, // данные для отправки
  16.             cache: false,
  17.             target: '#p1',
  18.             success: function (data) {
  19.             if (data ){
  20.                 alert ("OKyjyuj");
  21.                 $("#p1").text(data);
  22.                     }
  23.                     else
  24.                     {
  25.                         alert("no ok");        
  26.                     }
  27.                          
  28.                     }  
  29.            
  30.  
  31.         });
  32.         return false;
  33.     });
  34.  
  35. });
  36. </script>
  37.  
  38. </head>
  39. <body>
  40. <div style="display: flex;">
  41. <p>Введите чило: </p>
  42. <form id="formdata"  method="POST" action='obrabot.php' style="margin: 16px;">
  43.    <input name='int' type='int'  />  <br /><br /> <input type='submit' name='Submit' id="submitsend" value='Отправить'  />
  44.  </form>
  45.  
  46. <p id="p1"></p>
  47.  
  48.  
  49. </body>
  50.  
  51. </html>
  52.  
  53.  


Еще ниже файл myscript.js
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(document).ready(function(){
  3.         debug: true
  4.         jQuery.validator.addMethod(
  5.     'regexp',
  6.     function(value, element, regexp) {
  7.         var re = new RegExp(regexp);
  8.         return this.optional(element) || re.test(value);
  9.     },
  10.     ""
  11. );
  12.    
  13.  
  14.     $("#formdata").validate({
  15.        
  16.         rules: {
  17.             int: {
  18.                 required: true,
  19.                 minlength: 4,
  20.                 maxlength: 4,
  21.                                 number : true,
  22.                                 regexp: '^[1-9]{1}[0-9]*$'
  23.             }
  24.  
  25.         },
  26.         messages:{
  27.             int:{
  28.                 required: "поле не заполнено или заполнено не верно",
  29.                 minlength: "в поле должно быть минимум 4 символа",
  30.                 maxlength: "В поле должно быть максимум 4 символа",
  31.                                 number : "В поле должны быть только цифры",
  32.                                 regexp: "Число не должно начинаться на ноль!!"
  33.                            
  34.             }
  35.         }
  36.        
  37.  
  38.     });
  39.  
  40. });
  41.  
  42.  


Еще ниже файл обработчик не весь :
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['int'])) {$str = $_POST['int'];}
  3. if (isset($_POST['int'])) {$zifra =(int) $_POST['int'];}
  4.  
  5. /* echo "Переменная \$zifra имеет тип - ". (gettype($zifra)). "<br/>"; */
  6. if ($zifra <= 1000)
  7. {
  8.         $errors[] = "Нельзя вводить число начинающееся с нуля!!";
  9.          /* echo "Нельзя вводить число начинающееся с нуля!!"; */
  10. }
  11.  
  12. $arr1 = str_split($str);
  13. print_r ($arr1);
  14.  
  15. $length_arr1=count($arr1);
  16. print_r($lenght_arr1);
  17.  
  18. $result = array_unique($arr1);
  19.  
  20. $length_result=count($result);
  21. /* print_r($result);
  22. print_r($length_result); */
  23. if ($length_result<$length_arr1)
  24. {
  25.         $errors[] = "Нельзя вводить повторяющиеся цифры!!";
  26.         /* echo "Нельзя вводить повторяющиеся цифры!!"; */
  27. }
  28.  
  29.  if(isset($errors)){
  30.  
  31.      
  32.          foreach($errors as $msg){
  33.             echo $msg;
  34.          }
  35.      
  36.    return false;
  37.  }
  38.  

А теперь вопрос как сделать чтобы форма , если не прошла валидацию, не отправлялась. И еще в файле обработчике не выводит print_r($lenght_arr1); а $length_result=count($result); выводит.
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Марта, 2015 - 20:58:50
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




CODE (javascript):
скопировать код в буфер обмена
  1. $("#formdata").on("submit",function () { // и далее как было
 
 Top
Влад_имир
Отправлено: 27 Марта, 2015 - 21:03:57
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2015  


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




DeepVarvar пишет:
CODE (javascript):
скопировать код в буфер обмена
  1. $("#formdata").on("submit",function () { // и далее как было


форма отправляется , все работает, но если валидация не пройдена , она все равно отправляется, как сделать ,чтобы не отправлялась если не пройдена
 
 Top
Faraon-san
Отправлено: 27 Марта, 2015 - 22:57:59
Post Id



Посетитель


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


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




а что возвращает это:
CODE (javascript):
скопировать код в буфер обмена
  1. $("#formdata").validate();
 
 Top
Влад_имир
Отправлено: 28 Марта, 2015 - 13:09:48
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2015  


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




Faraon-san пишет:
а что возвращает это:
CODE (javascript):
скопировать код в буфер обмена
  1. $("#formdata").validate();


Даже не знаю, и как проверить? Думаю tru или false.

(Отредактировано автором: 28 Марта, 2015 - 13:22:09)

 
 Top
DeepVarvar Супермодератор
Отправлено: 28 Марта, 2015 - 14:22:01
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Влад_имир пишет:
и как проверить?
Алертами дебаж ))
 
 Top
Faraon-san
Отправлено: 28 Марта, 2015 - 14:23:59
Post Id



Посетитель


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


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




попробуй это:
CODE (javascript):
скопировать код в буфер обмена
  1. if(!$("#formdata").validate()){
  2. return false;
  3. }

если не достиг успеха, то посмотреть что возвращает можно в консоли, в браузере F12 там вкладка console, там вводишь $("#formdata").validate()
если не нашел, то следующий код:
CODE (javascript):
скопировать код в буфер обмена
  1. alert($("#formdata").validate());
 
 Top
Влад_имир
Отправлено: 28 Марта, 2015 - 17:36:34
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2015  


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




Faraon-san пишет:
попробуй это:
CODE (javascript):
скопировать код в буфер обмена
  1. if(!$("#formdata").validate()){
  2. return false;
  3. }

если не достиг успеха, то посмотреть что возвращает можно в консоли, в браузере F12 там вкладка console, там вводишь $("#formdata").validate()
если не нашел, то следующий код:
CODE (javascript):
скопировать код в буфер обмена
  1. alert($("#formdata").validate());


CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3. $(document).ready(function(){
  4.          $("#formdata").validate();            
  5.     $("#formdata").submit(function () { //это обработчик нажатия кнопки ОТПРАВИТЬ
  6.      
  7.         var data = $(this).serialize();
  8.         $.ajax({// инициализируем ajax запрос
  9.             type: 'POST', // отправляем в POST формате
  10.             url: 'obrabot.php', // путь до обработчика, у нас он лежит в той же папке
  11.                         data: data, // данные для отправки
  12.                         cache: false,
  13.                         success: function (data) {
  14.                         if (data ){
  15.                                 alert ("OKyjyuj");
  16.                                 $("#p1").text(data);
  17.                                         }
  18.                                         else
  19.                                         {
  20.                                                 alert("no ok");                
  21.                                         }
  22.                                                
  23.                                         }      
  24.            
  25.                        
  26.         });
  27.                 return false;
  28.         });
  29. </script>
  30.  


Вот так вот работает. Faraon-san спасибо огромное !!!

(Отредактировано автором: 28 Марта, 2015 - 17:41:55)

 
 Top
Влад_имир
Отправлено: 31 Марта, 2015 - 23:45:26
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Март 2015  


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




Спустя некоторое время опять заглючило. Помогло вот это http://answer[dot]techwikihow[dot]com/71[dot][dot][dot]idate-issue[dot]html
Вообщем перенес весь jquery в один файл myscript. Код его ниже, может кому пригодиться.
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(document).ready(function(){
  3.                 jQuery.validator.addMethod(
  4.     'regexp',
  5.     function(value, element, regexp) {
  6.         var re = new RegExp(regexp);
  7.         return this.optional(element) || re.test(value);
  8.     },
  9.     ""
  10. );
  11.        
  12.         $("#formdata").validate({
  13.        
  14.        
  15.         rules: {
  16.             int: {
  17.                 required: true,
  18.                 minlength: 4,
  19.                 maxlength: 4,
  20.                                 number : true,
  21.                                 regexp: '^[1-9]{1}[0-9]*$'
  22.             }
  23.  
  24.         },
  25.         messages:{
  26.             int:{
  27.                 required: "поле не заполнено или заполнено не верно",
  28.                 minlength: "в поле должно быть минимум 4 символа",
  29.                 maxlength: "В поле должно быть максимум 4 символа",
  30.                                 number : "В поле должны быть только цифры",
  31.                                 regexp: "Число не должно начинаться на ноль!!"
  32.                            
  33.             }
  34.         },
  35.      
  36.        
  37.           submitHandler: function() { //это обработчик нажатия кнопки ОТПРАВИТЬ
  38.      
  39.         var data = $("#formdata").serialize();
  40.                
  41.         $.ajax({// инициализируем ajax запрос
  42.             type: 'POST', // отправляем в POST формате
  43.             url: '../obrabot.php', // путь до обработчика
  44.                         data: data, // данные для отправки
  45.                         cache: false,
  46.                         success: function (data) {
  47.                         if (data ){
  48.                                                 alert ("OKyjyuj");
  49.                                                 $("#p1").text(data);
  50.                                         }
  51.                                         else
  52.                                         {
  53.                                                 alert("no ok");                
  54.                                         }
  55.                                                
  56.                                         }      
  57.            
  58.                        
  59.         });
  60.                 return false;
  61.         }
  62.        
  63. });
  64. });
  65.  

Пока вроде работает.

(Отредактировано автором: 31 Марта, 2015 - 23:46:11)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB