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 :: Отправка POST к скрипту.

 PHP.SU

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


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

> Без описания
vlados
Отправлено: 15 Февраля, 2012 - 16:57:07
Post Id



Посетитель


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


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

[+][+][+]


Есть скрипт на js, который получает данные с форм(проверяет на валидность если все ОК, то данные с форм отправляются на обработчик):
Но скрипт не работает. Где ошибка?


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. function validate(){
  3.         valid = true;
  4.         if(document.getElementById("text1").value==""){document.getElementById("text1").className = 'error'; valid = false;}else{document.getElementById("text1").className = '';}
  5.         if(document.getElementById("text2").value==""){document.getElementById("text2").className = 'error'; valid = false;}else{document.getElementById("text1").className = '';}
  6.         if(document.getElementById("text3").value==""){document.getElementById("text3").className = 'error'; valid = false;}else{document.getElementById("text1").className = '';}
  7.         if(document.getElementById("text4").value==""){document.getElementById("text4").className = 'error'; valid = false;}else{document.getElementById("text1").className = '';}
  8.         if(document.getElementById("text5").value==""){document.getElementById("text5").className = 'error'; valid = false;}else{document.getElementById("text1").className = '';}
  9.         if(document.getElementById("text6").value==""){document.getElementById("text6").className = 'error'; valid = false;}else{document.getElementById("text1").className = '';}
  10.         if(document.getElementById("text7").value==""){document.getElementById("text7").className = 'error'; valid = false;}else{document.getElementById("text1").className = '';}
  11.         if(document.getElementById("text8").value==""){document.getElementById("text8").className = 'error'; valid = false;}else{document.getElementById("text1").className = '';}
  12.         if(valid!=false){
  13.         $.post("http://localhost/panel/core/sendfile.php",{
  14.         mod:document.getElementById("mod").value,
  15.         Url:document.getElementById("text1").value,
  16.         YO:document.getElementById("text2").value,
  17.         CMS:document.getElementById("text3").value,
  18.         YaG:document.getElementById("text4").value,
  19.         NumberPeople:document.getElementById("text5").value,
  20.         Price:document.getElementById("text6").value,
  21.         GoGetLinks:document.getElementById("check1").value,
  22.         GoGoodLinks:document.getElementById("check2").value,
  23.         Trustlinks:document.getElementById("check3").value,
  24.         MiraLinks:document.getElementById("check4").value,
  25.         Rotapost:document.getElementById("check5").value,
  26.         prSape:document.getElementById("check6").value,
  27.         Linkfeed:document.getElementById("check7").value,
  28.         AnotherInfo:document.getElementById("textarea1").value,
  29.         HowToSpeakWithYou:document.getElementById("text7").value,
  30.         Email:document.getElementById("text8").value,
  31.         AnotherContact:document.getElementById("textarea2").value});   
  32.         }else{return valid;}
  33.  
  34. }
  35.  

(Отредактировано автором: 15 Февраля, 2012 - 17:01:55)

 
 Top
OrmaJever
Отправлено: 15 Февраля, 2012 - 17:02:03
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




и? Хм


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
IllusionMH
Отправлено: 15 Февраля, 2012 - 17:04:29
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




vlados, многовато
CODE (javascript):
скопировать код в буфер обмена
  1. } else {
  2.         document.getElementById("text1").className = '';
  3.     }
 
 Top
vlados
Отправлено: 15 Февраля, 2012 - 17:04:38
Post Id



Посетитель


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


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

[+][+][+]


OrmaJever пишет:
и? Хм


Не работает Улыбка

Кстати, можно ли как-то сделать код более читабельным? А то стыдно даже за это безобразиеУлыбка
(Добавление)
IllusionMH пишет:
vlados, многовато

Этой строкой чистится класс.
(Добавление)
Я на форме сделал вызов функции.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <form class="vertical" action="" name="form1" onsubmit="return validate();" method="">
 
 Top
IllusionMH
Отправлено: 15 Февраля, 2012 - 17:09:59
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




vlados, почему-то класс чистится только у первого поля.

http://jsfiddle[dot]net/
Копируете код туда и жмете TidyUp

И зачем форму пытаться отправить 2 раза? ($.post и просто сабмит )

CODE (javascript):
скопировать код в буфер обмена
  1.  if(valid!=false){


(Добавление)
И "не работает" скрывает за собой слишком много вариантов. Нахмурился

(Отредактировано автором: 15 Февраля, 2012 - 17:10:37)

 
 Top
vlados
Отправлено: 15 Февраля, 2012 - 17:15:24
Post Id



Посетитель


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


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

[+][+][+]


Цитата:
почему-то класс чистится только у первого поля.

Хм и правда... А как это исправить?

Я пытаюсь все сделать на js, без перезагрузок и т.п.

Цитата:
И "не работает" скрывает за собой слишком много вариантов.


Ну, могу еще добавить:
1. Скрипт(php обработчик) данные видимо не получает, т.к. в бд они не заносятся.
2. Например сейчас, если заполнить все поля и нажать сабмит, то происходит редерект на:
Спойлер (Отобразить)

(Отредактировано автором: 15 Февраля, 2012 - 17:19:03)

 
 Top
IllusionMH
Отправлено: 15 Февраля, 2012 - 17:20:23
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




vlados, чтобы избежать обычной отправки - вконце функции всегда выводить return false;
 
 Top
OrmaJever
Отправлено: 15 Февраля, 2012 - 17:22:26
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




vlados пишет:
Кстати, можно ли как-то сделать код более читабельным?

та запросто
CODE (javascript):
скопировать код в буфер обмена
  1. function ge(elem) {
  2.   return document.getElementById(elem);
  3. }
  4. function validate(){
  5.  
  6.     for(i=1; i<=8;++i) {
  7.       if(ge("text" + i).value=="") {
  8.         ge("text" + i).className = 'error ' + i;
  9.         return;
  10.       }
  11.     }
  12.     $.post("http://localhost/panel/core/sendfile.php",{
  13.     mod: ge("mod").value,
  14.     Url: ge("text1").value,
  15.     YO: ge("text2").value,
  16.     CMS: ge("text3").value,
  17.     YaG: ge("text4").value,
  18.     NumberPeople: ge("text5").value,
  19.     Price: ge("text6").value,
  20.     GoGetLinks: ge("check1").value,
  21.     GoGoodLinks: ge("check2").value,
  22.     Trustlinks: ge("check3").value,
  23.     MiraLinks: ge("check4").value,
  24.     Rotapost: ge("check5").value,
  25.     prSape: ge("check6").value,
  26.     Linkfeed: ge("check7").value,
  27.     AnotherInfo: ge("textarea1").value,
  28.     HowToSpeakWithYou: ge("text7").value,
  29.     Email: ge("text8").value,
  30.     AnotherContact: ge("textarea2").value});
  31. }
  32.  

(Отредактировано автором: 15 Февраля, 2012 - 17:23:36)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
vlados
Отправлено: 15 Февраля, 2012 - 17:23:38
Post Id



Посетитель


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


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

[+][+][+]


Добавил, теперь даже кнопка не нажимается Улыбка

Блин... А что делать?

------------------
Ух ты, как компактно! Но еще бы работал...

(Отредактировано автором: 15 Февраля, 2012 - 17:26:54)

 
 Top
IllusionMH
Отправлено: 15 Февраля, 2012 - 17:27:54
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




OrmaJever, а не лучше ли
CODE (javascript):
скопировать код в буфер обмена
  1. var el;
  2. for(i=1; i<=8;++i) {
  3.       el = document.getElementById("text" + i);
  4.      
  5.       if(el.value=="") {
  6.         el.className = 'error ' + i;
  7.         return;
  8.       }
  9. }

Все, понял что не лучше. Радость


vlados, исправлять. В отладчике JS последовательно пройтись.

(Отредактировано автором: 15 Февраля, 2012 - 17:29:01)

 
 Top
vlados
Отправлено: 15 Февраля, 2012 - 17:30:16
Post Id



Посетитель


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


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

[+][+][+]


IllusionMH пишет:

vlados, исправлять. В отладчике JS последовательно пройтись.

Файрбаг сидит молчком, ничего не показывает...
 
 Top
IllusionMH
Отправлено: 15 Февраля, 2012 - 17:30:44
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




Хотя не понятно зачем юзать getElementById если же подключена jQuery (судя по способу отправки) Не понял
 
 Top
vlados
Отправлено: 15 Февраля, 2012 - 17:32:44
Post Id



Посетитель


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


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

[+][+][+]


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. function ge(elem) {
  3.     return document.getElementById(elem);
  4. }
  5.  
  6. function validate() {
  7.  
  8.     for (i = 1; i <= 8; i++) {
  9.        if (ge("text" + i).value == "") {
  10.            ge("text" + i).className = 'error ' + i;
  11.        }
  12.    }
  13.    $.post("http://localhost/panel/core/sendfile.php", {
  14.        mod: ge("mod").value,
  15.        Url: ge("text1").value,
  16.        YO: ge("text2").value,
  17.        CMS: ge("text3").value,
  18.        YaG: ge("text4").value,
  19.        NumberPeople: ge("text5").value,
  20.        Price: ge("text6").value,
  21.        GoGetLinks: ge("check1").value,
  22.        GoGoodLinks: ge("check2").value,
  23.        Trustlinks: ge("check3").value,
  24.        MiraLinks: ge("check4").value,
  25.        Rotapost: ge("check5").value,
  26.        prSape: ge("check6").value,
  27.        Linkfeed: ge("check7").value,
  28.        AnotherInfo: ge("textarea1").value,
  29.        HowToSpeakWithYou: ge("text7").value,
  30.        Email: ge("text8").value,
  31.        AnotherContact: ge("textarea2").value
  32.    });
  33. }
  34.  


Если так сделать, то все поля незаполненные подсвечиваются. Но вот, даже если поля не заполнены, СКРИПТ ШЛЕТ ДАННЫЕ.
 
 Top
IllusionMH
Отправлено: 15 Февраля, 2012 - 17:32:51
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




А почему бы не отправить форму таки макаром?
CODE (javascript):
скопировать код в буфер обмена
  1. $.post("test.php", $("#form").serialize());

(Добавление)
vlados пишет:
Если так сделать, то все поля незаполненные подсвечиваются. Но вот, даже если поля не заполнены, СКРИПТ ШЛЕТ ДАННЫЕ.

А проверочку не забыли добавить в чужой скрипт?
(Добавление)
И return false; в конце
 
 Top
OrmaJever
Отправлено: 15 Февраля, 2012 - 17:35:00
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




vlados помоему в моём варианте кода в цыкле был return ? Однако


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (5): [1] 2 3 4 5 »
Сейчас эту тему просматривают: 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