PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (5): [1] 2 3 4 5 »
Без описания
Поиск в теме | Версия для печати
vlados
Отправлено: 15 Февраля, 2012 - 16:57:07
Посетитель
Покинул форум
Сообщений всего: 391
Дата рег-ции: Май 2011
Помог: 1 раз(а)
[+][+][+]
Есть скрипт на js, который получает данные с форм(проверяет на валидность если все ОК, то данные с форм отправляются на обработчик):
Но скрипт не работает. Где ошибка?
CODE (
htmlphp ):
скопировать код в буфер обмена
function validate( ) {
valid = true ;
if ( document. getElementById( "text1" ) . value== "" ) { document. getElementById( "text1" ) . className = 'error' ; valid = false ; } else { document. getElementById( "text1" ) . className = '' ; }
if ( document. getElementById( "text2" ) . value== "" ) { document. getElementById( "text2" ) . className = 'error' ; valid = false ; } else { document. getElementById( "text1" ) . className = '' ; }
if ( document. getElementById( "text3" ) . value== "" ) { document. getElementById( "text3" ) . className = 'error' ; valid = false ; } else { document. getElementById( "text1" ) . className = '' ; }
if ( document. getElementById( "text4" ) . value== "" ) { document. getElementById( "text4" ) . className = 'error' ; valid = false ; } else { document. getElementById( "text1" ) . className = '' ; }
if ( document. getElementById( "text5" ) . value== "" ) { document. getElementById( "text5" ) . className = 'error' ; valid = false ; } else { document. getElementById( "text1" ) . className = '' ; }
if ( document. getElementById( "text6" ) . value== "" ) { document. getElementById( "text6" ) . className = 'error' ; valid = false ; } else { document. getElementById( "text1" ) . className = '' ; }
if ( document. getElementById( "text7" ) . value== "" ) { document. getElementById( "text7" ) . className = 'error' ; valid = false ; } else { document. getElementById( "text1" ) . className = '' ; }
if ( document. getElementById( "text8" ) . value== "" ) { document. getElementById( "text8" ) . className = 'error' ; valid = false ; } else { document. getElementById( "text1" ) . className = '' ; }
if ( valid!= false ) {
$. post( "http://localhost/panel/core/sendfile.php" , {
mod: document. getElementById( "mod" ) . value,
Url: document. getElementById( "text1" ) . value,
YO: document. getElementById( "text2" ) . value,
CMS: document. getElementById( "text3" ) . value,
YaG: document. getElementById( "text4" ) . value,
NumberPeople: document. getElementById( "text5" ) . value,
Price: document. getElementById( "text6" ) . value,
GoGetLinks: document. getElementById( "check1" ) . value,
GoGoodLinks: document. getElementById( "check2" ) . value,
Trustlinks: document. getElementById( "check3" ) . value,
MiraLinks: document. getElementById( "check4" ) . value,
Rotapost: document. getElementById( "check5" ) . value,
prSape: document. getElementById( "check6" ) . value,
Linkfeed: document. getElementById( "check7" ) . value,
AnotherInfo: document. getElementById( "textarea1" ) . value,
HowToSpeakWithYou: document. getElementById( "text7" ) . value,
Email: document. getElementById( "text8" ) . value,
AnotherContact: document. getElementById( "textarea2" ) . value} ) ;
} else { return valid; }
}
(Отредактировано автором: 15 Февраля, 2012 - 17:01:55)
vlados
Отправлено: 15 Февраля, 2012 - 17:04:38
Посетитель
Покинул форум
Сообщений всего: 391
Дата рег-ции: Май 2011
Помог: 1 раз(а)
[+][+][+]
Не работает
Кстати, можно ли как-то сделать код более читабельным? А то стыдно даже за это безобразие
(Добавление)
IllusionMH пишет: vlados, многовато
Этой строкой чистится класс.
(Добавление)
Я на форме сделал вызов функции.
IllusionMH
Отправлено: 15 Февраля, 2012 - 17:09:59
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011
Откуда: .kh.ua
Помог: 242 раз(а)
vlados , почему-то класс чистится только у первого поля.
http://jsfiddle[dot]net/
Копируете код туда и жмете TidyUp
И зачем форму пытаться отправить 2 раза? ($.post и просто сабмит )
(Добавление)
И "не работает" скрывает за собой слишком много вариантов. (Отредактировано автором: 15 Февраля, 2012 - 17:10:37)
vlados
Отправлено: 15 Февраля, 2012 - 17:15:24
Посетитель
Покинул форум
Сообщений всего: 391
Дата рег-ции: Май 2011
Помог: 1 раз(а)
[+][+][+]
Цитата: почему-то класс чистится только у первого поля.
Хм и правда... А как это исправить?
Я пытаюсь все сделать на js, без перезагрузок и т.п.
Цитата: И "не работает" скрывает за собой слишком много вариантов.
Ну, могу еще добавить:
1. Скрипт(php обработчик) данные видимо не получает, т.к. в бд они не заносятся.
2. Например сейчас, если заполнить все поля и нажать сабмит, то происходит редерект на:
Спойлер (Отобразить ) CODE (
htmlphp ):
скопировать код в буфер обмена
http://localhost/panel/?1Url=%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83&1YO=%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83&1CMS=%D1%84%D1%8B%D0%B2&1YaG=%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83&1NumberPeople=%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83&1Price=%D1%83%D1%83%D1%83&1AnotherInfo=&1HowToSpeakWithYou=%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83%D1%83&1Email=%D1%83%D1%83%D1%83%D1%83%D1%83&1AnotherContact=&1mod=1
(Отредактировано автором: 15 Февраля, 2012 - 17:19:03)
OrmaJever
Отправлено: 15 Февраля, 2012 - 17:22:26
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010
Откуда: Чернигов
Помог: 299 раз(а)
vlados пишет: Кстати, можно ли как-то сделать код более читабельным?
та запросто
CODE (
javascript ):
скопировать код в буфер обмена
function ge( elem) {
return document.getElementById ( elem) ;
}
function validate( ) {
for ( i= 1 ; i<= 8 ;++ i) {
if ( ge( "text" + i) .value == "" ) {
ge( "text" + i) .className = 'error ' + i;
return ;
}
}
$.post ( "http://localhost/panel/core/sendfile.php" , {
mod: ge( "mod" ) .value ,
Url: ge( "text1" ) .value ,
YO: ge( "text2" ) .value ,
CMS: ge( "text3" ) .value ,
YaG: ge( "text4" ) .value ,
NumberPeople: ge( "text5" ) .value ,
Price: ge( "text6" ) .value ,
GoGetLinks: ge( "check1" ) .value ,
GoGoodLinks: ge( "check2" ) .value ,
Trustlinks: ge( "check3" ) .value ,
MiraLinks: ge( "check4" ) .value ,
Rotapost: ge( "check5" ) .value ,
prSape: ge( "check6" ) .value ,
Linkfeed: ge( "check7" ) .value ,
AnotherInfo: ge( "textarea1" ) .value ,
HowToSpeakWithYou: ge( "text7" ) .value ,
Email: ge( "text8" ) .value ,
AnotherContact: ge( "textarea2" ) .value } ) ;
}
(Отредактировано автором: 15 Февраля, 2012 - 17:23:36)
-----Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
vlados
Отправлено: 15 Февраля, 2012 - 17:23:38
Посетитель
Покинул форум
Сообщений всего: 391
Дата рег-ции: Май 2011
Помог: 1 раз(а)
[+][+][+]
Добавил, теперь даже кнопка не нажимается
Блин... А что делать?
------------------
Ух ты, как компактно! Но еще бы работал...
(Отредактировано автором: 15 Февраля, 2012 - 17:26:54)
IllusionMH
Отправлено: 15 Февраля, 2012 - 17:27:54
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011
Откуда: .kh.ua
Помог: 242 раз(а)
OrmaJever , а не лучше ли
CODE (
javascript ):
скопировать код в буфер обмена
var el;
for ( i= 1 ; i<= 8 ;++ i) {
el = document.getElementById ( "text" + i) ;
if ( el.value == "" ) {
el.className = 'error ' + i;
return ;
}
}
Все, понял что не лучше.
vlados , исправлять. В отладчике JS последовательно пройтись.(Отредактировано автором: 15 Февраля, 2012 - 17:29:01)
vlados
Отправлено: 15 Февраля, 2012 - 17:32:44
Посетитель
Покинул форум
Сообщений всего: 391
Дата рег-ции: Май 2011
Помог: 1 раз(а)
[+][+][+]
CODE (
htmlphp ):
скопировать код в буфер обмена
function ge(elem) {
return document.getElementById(elem);
}
function validate() {
for (i = 1; i <= 8 ; i++ ) {
if ( ge( "text" + i) . value == "" ) {
ge( "text" + i) . className = 'error ' + i;
}
}
$. post( "http://localhost/panel/core/sendfile.php" , {
mod: ge( "mod" ) . value,
Url: ge( "text1" ) . value,
YO: ge( "text2" ) . value,
CMS: ge( "text3" ) . value,
YaG: ge( "text4" ) . value,
NumberPeople: ge( "text5" ) . value,
Price: ge( "text6" ) . value,
GoGetLinks: ge( "check1" ) . value,
GoGoodLinks: ge( "check2" ) . value,
Trustlinks: ge( "check3" ) . value,
MiraLinks: ge( "check4" ) . value,
Rotapost: ge( "check5" ) . value,
prSape: ge( "check6" ) . value,
Linkfeed: ge( "check7" ) . value,
AnotherInfo: ge( "textarea1" ) . value,
HowToSpeakWithYou: ge( "text7" ) . value,
Email: ge( "text8" ) . value,
AnotherContact: ge( "textarea2" ) . value
} ) ;
}
Если так сделать, то все поля незаполненные подсвечиваются. Но вот, даже если поля не заполнены, СКРИПТ ШЛЕТ ДАННЫЕ.
Поиск в теме | Версия для печати
Страниц (5): [1] 2 3 4 5 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB