Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   плавный скролинг при нажатии кнопки на форме (https://javascript.ru/forum/dom-window/54535-plavnyjj-skroling-pri-nazhatii-knopki-na-forme.html)

sones 23.03.2015 19:08

Перезагрузка страницы?

laimas 23.03.2015 19:10

Ну, и какие тогда могут быть вопросы почему "бросает страницу вверх"?

Вы можете и обидеться, но структура вашего кода, это не структура, это бедлам полный.

sones 23.03.2015 19:11

Буду учить мат часть и смотреть в сторону ajax

sones 23.03.2015 19:58

Цитата:

Сообщение от laimas (Сообщение 362700)
Ну, и какие тогда могут быть вопросы почему "бросает страницу вверх"?

Вы можете и обидеться, но структура вашего кода, это не структура, это бедлам полный.

laimas,
Большая просьба подсказать, что не так, буду наоборот благодарен любой критике.

laimas 23.03.2015 20:32

Отвечаю, что не так в структуре:

1) В самом начале запускается вызов функции на клиенте - scroll(), откуда ей взяться и что она должна выполнить, если сама страница выводится далее?

2) Ладно, пусть бы это было сделано грамотно и не было бы проблем, но почему вызов этой функции в блоке, который проверяет данные пришедшей формы?

3) Ранее говорилось о завершении операции входа, то есть действии сервера, и у вас определен переход на "саму себя" - location. Можно и так, не проблема, но что после такого перехода увидит пользователь, если логика вашего кода кроме вывода формы не подразумевает ничего?

Если принять во внимание переход на "саму себя" и результат успешного входа это установленный в сессии его признак, то в начале кода должна быть проверка наличия этого флага - нет его, значит выводится форма, которая выводится и при ошибках. Если флаг установлен, значит выводится нечто иное. Форма или нечто иное может быть и не прописано в самом коде, это могут быть подключаемые по условию их шаблоны, с переменными, значения которых определяет основной скрипт.

В начале также определяются значения полей формы - если форма получена, значит они равны соответствующим значениям полям формы, иначе NULL. Эти значения (кроме пароля) подставляются в форму.

Далее идет проверка формы, если она была принята, и если ОК, значит пишется в сессию признак, передается заголовок осуществляющий переход, и выдох из скрипта. Если ошибки, значит формируется сообщение в определенной переменной.

Далее вывод непосредственно html-кода страницы включая и клиентских сценариев, если нужно, с подключением по условию "вход/нет входа" шаблонов, а также вывод ошибок.

***********

У вас же просто каша - серверным сценарием вы пытаетесь управлять клиентом, не фактически, а по логике. При этом "проверки и т.д." и "обработчик по клику кнопки", что являющееся вообще-то одной задачей, у вас расколота на части с непонятным по логике определением места им в структуре кода - часть в начале, часть в самом конце.


Часовой пояс GMT +3, время: 16:29.