Выбор идентификатора формы для отправки в переменную jquery - PullRequest
2 голосов
/ 08 марта 2011

Я делаю сайт с шутками. Каждая шутка хранится в записи в mysql db. Когда шутки собраны на странице, появляется кнопка голосования с class=votebutton. Когда кто-то нажимает на эту ссылку, я хотел бы, чтобы идентификатор формы и IP-адрес пользователя отправлялись через функцию jjery ajax в мой файл .php для обработки голосов. У меня есть 2 вопроса: 1. Правильно ли использовать $(".votebutton").click() в качестве селектора для запуска этой функции? 2. Как выбрать id формы для отправки для создания переменной id в функции jquery?

 $(function() {
      $(".votebutton").click(function() {
      var id = //I'd like this to be the id of the form submitted
      var ip = //I'd like this to be the ip of the user
      var dataString = 'id='+ id = '&ip=' + ip;
      //alert (dataString);return false;
      $.ajax({
        type: "POST",
        url: "bin/vote.php",
        data: dataString,
        success: function() {
          //something to do on success
        }
      });
      return false;
   });
 });

Кроме того, еще один вопрос, если у вас, ребята, есть минутка - какой хороший способ получить IP посетителя. Я ожидаю, что на странице будет около 10 таких форм (по одной на каждую шутку) ...

Большое спасибо за помощь ...

Ответы [ 4 ]

1 голос
/ 08 марта 2011

Правильно использовать .votebutton для клика.

Когда вы нажимаете кнопку, просто открываете идентификатор родителя, так что $ (this) .parent (). Attr ('id')

1 голос
/ 08 марта 2011

Правильно ли использовать $ (". voicebutton"). нажмите () как селектор

Да

Как выбрать идентификатор формы отправляется

Обычная практика - хранить идентификатор как часть идентификатора элемента, например:

<button id="vote_54321" value="Vote!" class="votebutton" />

Чем, в вашей функции вы можете получить идентификатор:

var id = $(this).attr('id').split('_')[1];

Нет способа получить IP-адрес клиента из javascript, который вы должны получить в своем php-коде на сервере:

$userip = $_SERVER['REMOTE_ADDR'];
1 голос
/ 08 марта 2011
  1. Лучше использовать «отправить» в качестве события - так вы можете использовать вкладку и вернуться, чтобы перейти к элементу формы.Вы прикрепляете обработчик отправки к форме, а не кнопку.

  2. Если вы используете «отправить», тогда «это» уже будет формой, поэтому вы можете сделать $(this).attr('id')

0 голосов
/ 08 марта 2011
  1. Да, это должно работать нормально. Он будет связывать все элементы с этим классом
  2. jQuery(this).attr('id') должен предоставить вам идентификатор элемента.

Не уверен насчет IP, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...