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
Форумы портала PHP.SU :: Версия для печати :: Отправка формы AJAX
Форумы портала PHP.SU » » HTTP и PHP » Отправка формы AJAX

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

1. Kuroch - 15 Августа, 2011 - 16:59:22 - перейти к сообщению
Всем доброго времени суток!
Возникла такая проблема... начал изучать аякс пока без всяких примочек типа прототайп и прочих так вот столкнулся с совсем простенькой проблемкой... вопрос даже не связан с аяксом...

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

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

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

работаю вот над этим http://kuroch[dot]ru/ajax/chat/
2. SAD - 15 Августа, 2011 - 17:16:43 - перейти к сообщению
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>
3. Kuroch - 15 Августа, 2011 - 17:33:56 - перейти к сообщению
А реализовать это без jQuery никак нельзя... я пока еще не начал этим заниматься поэтому хотел бы более понятное для себя решение найти... задача то совсем простая и наверняка решение ещё проще и лежит на поверхности...
(Добавление)
unbind только для jQuery актуально??? может есть аналог на JS???
4. SAD - 15 Августа, 2011 - 17:42:49 - перейти к сообщению
unbind, bind - это в jquery
честно, без jquery не могу показать как.
хотя в интернете куча примеров
5. Kuroch - 15 Августа, 2011 - 17:46:29 - перейти к сообщению
и еще не понимаю почему в данном случае не работает событие onsubmit которому я таки написал нужную функцию... но ничего не изменилось
(Добавление)
SAD пишет:
unbind, bind - это в jquery
честно, без jquery не могу показать как.
хотя в интернете куча примеров


ну ладно пусть будет с квери... мне надо какуюто библиотечку по этому поводу подключить!? вот это подойдет ??? :::<script src="http://code.jquery.com/jquery-latest.js"></script>
6. DeepVarvar - 15 Августа, 2011 - 17:55:13 - перейти к сообщению
Kuroch пишет:
наверняка решение ещё проще и лежит на поверхности
Исходя из вашей задачи, решение на чистом JS будет для вас выглядеть гораздо сложнее чем то, которое привел в примере SAD
7. Kuroch - 15 Августа, 2011 - 17:56:52 - перейти к сообщению
а точка с запятой в начале кода это опечатка или так и должно быть?
8. SAD - 15 Августа, 2011 - 18:07:21 - перейти к сообщению
так должно быть.
лучше подключите jquery 1.3.2 - она меньше весит, и в принципе стабильна
9. Arni - 16 Августа, 2011 - 00:55:39 - перейти к сообщению
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.  


На работоспособность не проверял но в целом примерно так. Если нужно отправить методом пост, то код немножко усложнится. Ответ сервера получить также очень просто.
10. Viper - 16 Августа, 2011 - 07:27:40 - перейти к сообщению
Arni думаю тут лучше $.post использовать. Форма вроде не поисковая.
11. SAD - 16 Августа, 2011 - 08:49:25 - перейти к сообщению
Arni пишет:
И раз уж используется JQuery то не совсем понимаю зачем все так усложнять.


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

jquery 1.3.2 весит в распакованном виде 56 кб

 

Powered by ExBB FM 1.0 RC1