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

 PHP.SU

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


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

> Без описания
Kuroch
Отправлено: 15 Августа, 2011 - 16:59:22
Post Id


Новичок


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


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




Всем доброго времени суток!
Возникла такая проблема... начал изучать аякс пока без всяких примочек типа прототайп и прочих так вот столкнулся с совсем простенькой проблемкой... вопрос даже не связан с аяксом...

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

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

Заранее спасибо за ответы!

работаю вот над этим http://kuroch[dot]ru/ajax/chat/
 
 Top
SAD
Отправлено: 15 Августа, 2011 - 17:16:43
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2. ;(function($) {
  3.     $('#send').unbind('click').bind('click', sendForm);
  4.     $('#some_id').unbind('keydown').bind("keydown",function(e) {
  5.                                           switch(e.keyCode) {
  6.                                               case 13:
  7.                                                   sendForm();
  8.                                                   break;
  9.                                               default:
  10.                                                   break;
  11.                                           }
  12.                                       });
  13.     function sendForm() {
  14.         $.post('your_url', {data: $('#some_id').val()}, function() {
  15.             // callback function
  16.         });
  17.     }
  18. })(jQuery);
  19. </script>
  20. <form>
  21. <input type="text" id="some_id">
  22. <input type="button" id="send">
  23. </form>
 
 Top
Kuroch
Отправлено: 15 Августа, 2011 - 17:33:56
Post Id


Новичок


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


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




А реализовать это без jQuery никак нельзя... я пока еще не начал этим заниматься поэтому хотел бы более понятное для себя решение найти... задача то совсем простая и наверняка решение ещё проще и лежит на поверхности...
(Добавление)
unbind только для jQuery актуально??? может есть аналог на JS???
 
 Top
SAD
Отправлено: 15 Августа, 2011 - 17:42:49
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




unbind, bind - это в jquery
честно, без jquery не могу показать как.
хотя в интернете куча примеров
 
 Top
Kuroch
Отправлено: 15 Августа, 2011 - 17:46:29
Post Id


Новичок


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


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




и еще не понимаю почему в данном случае не работает событие onsubmit которому я таки написал нужную функцию... но ничего не изменилось
(Добавление)
SAD пишет:
unbind, bind - это в jquery
честно, без jquery не могу показать как.
хотя в интернете куча примеров


ну ладно пусть будет с квери... мне надо какуюто библиотечку по этому поводу подключить!? вот это подойдет ??? :::<script src="http://code.jquery.com/jquery-latest.js"></script>
 
 Top
DeepVarvar Супермодератор
Отправлено: 15 Августа, 2011 - 17:55:13
Post Id



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


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


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




Kuroch пишет:
наверняка решение ещё проще и лежит на поверхности
Исходя из вашей задачи, решение на чистом JS будет для вас выглядеть гораздо сложнее чем то, которое привел в примере SAD
 
 Top
Kuroch
Отправлено: 15 Августа, 2011 - 17:56:52
Post Id


Новичок


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


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




а точка с запятой в начале кода это опечатка или так и должно быть?
 
 Top
SAD
Отправлено: 15 Августа, 2011 - 18:07:21
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




так должно быть.
лучше подключите jquery 1.3.2 - она меньше весит, и в принципе стабильна
 
 Top
Arni
Отправлено: 16 Августа, 2011 - 00:55:39
Post Id



Гость


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


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




SAD пишет:
лучше подключите jquery 1.3.2 - она меньше весит

Current Release: v1.6.2 Production (31KB, Minified and Gzipped) Точно легче? У меня просто не нашлось под руками чтобы проверить. На диске у меня оценилась в 92,0 КБ

И раз уж используется JQuery то не совсем понимаю зачем все так усложнять.

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3.  $(document).ready(function() {
  4.    $('#target').submit(function() {
  5.   $.get('index.php'+$(this).serialize());
  6.   return false;
  7. });
  8.  });
  9. </script>
  10. <form id="target">
  11. <input type="text" id="some_id">
  12. <input type="button" id="send">
  13. </form>
  14.  


На работоспособность не проверял но в целом примерно так. Если нужно отправить методом пост, то код немножко усложнится. Ответ сервера получить также очень просто.

(Отредактировано автором: 16 Августа, 2011 - 00:58:08)

 
 Top
Viper
Отправлено: 16 Августа, 2011 - 07:27:40
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




Arni думаю тут лучше $.post использовать. Форма вроде не поисковая.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
SAD
Отправлено: 16 Августа, 2011 - 08:49:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


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




Arni пишет:
И раз уж используется JQuery то не совсем понимаю зачем все так усложнять.


как попросили, так и делаем

jquery 1.3.2 весит в распакованном виде 56 кб
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB