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 :: Не работает Ajax/Jquery

 PHP.SU

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


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

> Без описания
lamokk
Отправлено: 29 Марта, 2016 - 14:49:10
Post Id


Новичок


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


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




Здравствуйте.
Есть страница на которой происходить авторизация и выход пользователя (все на Ajax/Jquery) без перезагрузки страницы.

Если пользователь входит, меняется часть страницы и появляется ссылка на выход и если на нее нажать сразу после входа то выход не происходить.
И наоборот, если авторизованый пользователь нажимает выход и потом сразу пытается авторизоваться, то ничего не происходить.

Подскажите в чем проблема?
Сама страница
CODE (html):
скопировать код в буфер обмена
  1. <!doctype html>
  2. <html>
  3. <head>
  4. </head>
  5.  <body>
  6. <div class="enter"><?=$enter?></div>
  7. <script type="text/javascript" src="/js/login.js"></script>
  8. </body>
  9. </html>


<?=$enter?> это
CODE (html):
скопировать код в буфер обмена
  1. <p>Авторизоваться</p>
  2. <form id="myForm">
  3.     <ul>
  4.         <li><input type="username"  id="username" name="username" placeholder="yourname@email.com" required></li>
  5.         <li><input type="password"  id="password" name="password" placeholder="password" required></li>
  6.         <li><a href="" id="ggg">Вход</a></span></li>
  7.     </ul>
  8. <input type="hidden"  id="do" name="do" value="enter">
  9. </form>


Код login.js
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.  
  3.    $("#ggg").click(function(event){
  4.       event.preventDefault();
  5.    });
  6.  
  7.             $("#ggg").click(function(){  
  8.                 $.ajax({  
  9.                     type: "POST",  
  10.                     url: "/php-ajax/login.php",  
  11.                     data: "username="+$("#username").val()+"&password="+$("#password").val()+"&do="+$("#do").val(),    
  12.                     success: function(html){  
  13.                         $(".enter").html(html);  
  14.                     }  
  15.                 });  
  16.                 return false;  
  17.             });  
  18.  
  19.  
  20. });


Дополню, может станет яснее в файле login.php делаю просто echo '5555' и он срабатывает через раз при нажатии кнопки войти.

(Отредактировано автором: 29 Марта, 2016 - 14:53:22)

 
 Top
IllusionMH
Отправлено: 29 Марта, 2016 - 14:55:44
Post Id



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


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


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




lamokk, а после того как вставляете новый HTML кто должен позаботиться о том, чтобы по новой навесить обработчики событий на новую кнопку?
читайте про делегирование событий и метод .on в jQuery
а еще там есть метод .serialize()

(Отредактировано автором: 29 Марта, 2016 - 14:56:26)

 
 Top
lamokk
Отправлено: 29 Марта, 2016 - 15:11:25
Post Id


Новичок


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


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




IllusionMH пишет:
lamokk, а после того как вставляете новый HTML кто должен позаботиться о том, чтобы по новой навесить обработчики событий на новую кнопку?
читайте про делегирование событий и метод .on в jQuery
а еще там есть метод .serialize()

Поясните если можно, лучше с примером.
т.к. сделав изменения, ничего не изменилось:
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.  
  3.    $("#ggg").click(function(event){
  4.       event.preventDefault();
  5.    });
  6.  
  7. $('#ggg').on('click', function(){
  8.                 $.ajax({  
  9.                     type: "POST",  
  10.                     url: "/php-ajax/login.php",  
  11.                     data: "username="+$("#username").val()+"&password="+$("#password").val()+"&do="+$("#do").val(),    
  12.                     success: function(html){  
  13.                         $(".enter").html(html);  
  14.                     }  
  15.                 });  
  16.                 return false;  
  17.             });  
  18.  
  19.  
  20. });

(Отредактировано автором: 29 Марта, 2016 - 15:56:49)

 
 Top
3d_killer
Отправлено: 29 Марта, 2016 - 15:46:24
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




а не проще данные как сказал IllusionMH

и послать, тогда не надо будет думать о скрипте при добавлении новых полей

(Отредактировано автором: 29 Марта, 2016 - 15:47:16)

 
My status
 Top
lamokk
Отправлено: 29 Марта, 2016 - 15:55:41
Post Id


Новичок


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


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




3d_killer пишет:
а не проще данные как сказал IllusionMH

и послать, тогда не надо будет думать о скрипте при добавлении новых полей

Это как бы отвлечение от темы...
Вопрос в решении срабатывании на второй раз подряд...
 
 Top
3d_killer
Отправлено: 29 Марта, 2016 - 16:00:20
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




он и по поводу этого сказал
CODE (javascript):
скопировать код в буфер обмена
  1. $("#ggg").click(function

надо так везде
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).on('click',"#ggg",function()
  2. {
  3.  
  4. });
 
My status
 Top
lamokk
Отправлено: 29 Марта, 2016 - 16:10:34
Post Id


Новичок


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


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




3d_killer пишет:
он и по поводу этого сказал
CODE (javascript):
скопировать код в буфер обмена
  1. $("#ggg").click(function

надо так везде
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).on('click',"#ggg",function()
  2. {
  3.  
  4. });


Сделал так: но теперь вообще не работает

CODE (javascript):
скопировать код в буфер обмена
  1. $(document).on('click', '#ggg', function()
  2.  
  3.    $("#ggg").on('click', function(event){
  4.       event.preventDefault();
  5.    });
  6.  
  7.             $("#ggg").on('click', function(){  
  8.                 $.ajax({  
  9.                     type: "POST",  
  10.                     url: "/php-ajax/login.php",  
  11.                     data: "username="+$("#username").val()+"&password="+$("#password").val()+"&do="+$("#do").val(),    
  12.                     success: function(html){  
  13.                         $(".enter").html(html);  
  14.                     }  
  15.                 });  
  16.                 return false;  
  17.             });  
  18.  
  19.  
  20. });


Где ошибка то?

(Отредактировано автором: 29 Марта, 2016 - 16:11:34)

 
 Top
3d_killer
Отправлено: 29 Марта, 2016 - 16:11:21
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




ну так а это зачем менять?
CODE (html):
скопировать код в буфер обмена
  1. $(document).ready(function(){
 
My status
 Top
lamokk
Отправлено: 29 Марта, 2016 - 16:13:00
Post Id


Новичок


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


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




3d_killer пишет:
ну так а это зачем менять?
CODE (html):
скопировать код в буфер обмена
  1. $(document).ready(function(){


Все равно не срабатывает на второй раз! Что не так?
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.  
  3.    $("#ggg").on('click', function(event){
  4.       event.preventDefault();
  5.    });
  6.  
  7.             $("#ggg").on('click', function(){  
  8.                 $.ajax({  
  9.                     type: "POST",  
  10.                     url: "/php-ajax/login.php",  
  11.                     data: "username="+$("#username").val()+"&password="+$("#password").val()+"&do="+$("#do").val(),    
  12.                     success: function(html){  
  13.                         $(".enter").html(html);  
  14.                     }  
  15.                 });  
  16.                 return false;  
  17.             });  
  18.  
  19.  
  20. });
 
 Top
3d_killer
Отправлено: 29 Марта, 2016 - 16:13:12
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




и скобки нет, естественно работать не будет
(Добавление)
а где кнопка выход?
 
My status
 Top
lamokk
Отправлено: 29 Марта, 2016 - 16:17:55
Post Id


Новичок


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


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




3d_killer пишет:
и скобки нет, естественно работать не будет
(Добавление)
а где кнопка выход?

Какой и где скобки нет?
Приведенный выше код работает, но на второй раз не срабатывает(1 раз ввожу неправильные логин пароль, а второй правильные, при втором разе ничего не происходит)!

Выход есть если войдемУлыбка

(Отредактировано автором: 29 Марта, 2016 - 16:19:29)

 
 Top
3d_killer
Отправлено: 29 Марта, 2016 - 16:20:30
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




вот это куда выводит ? $(".enter").html(html);
 
My status
 Top
lamokk
Отправлено: 29 Марта, 2016 - 16:28:18
Post Id


Новичок


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


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




3d_killer пишет:
вот это куда выводит ? $(".enter").html(html);

вот сюда выводим <div class="enter"><?=$enter?></div>
 
 Top
3d_killer
Отправлено: 29 Марта, 2016 - 16:31:27
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




а это зачем? $("#ggg").on('click', function(event){
event.preventDefault();
}); если у вас return false прописан?
 
My status
 Top
lamokk
Отправлено: 29 Марта, 2016 - 16:34:27
Post Id


Новичок


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


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




3d_killer пишет:
а это зачем? $("#ggg").on('click', function(event){
event.preventDefault();
}); если у вас return false прописан?

Это отменяет действие по умолчанию, т.е. отменяет переход по ссылке
просто форма(данные) отправляется по нажатию на ссылку "войти"
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB