Jquery отправить несколько ссылок - PullRequest
0 голосов
/ 20 февраля 2010

У меня есть страница, на которой я показываю список пользователей и рядом с каждым пользователем - есть ссылка «Добавить в друзья».

Теперь, когда пользователь нажимает эту ссылку «Добавить в друзья» - я хочу позвонить в Jquery и отправить этот запрос в бэкэнд PHP.

Обычно мой опыт работы с Jquery подразумевает наличие одной формы на странице и отправку этой формы через Jquery. - У каждой формы есть идентификатор - Используя этот идентификатор, я вызываю функцию submit $ ("# Invite_form"). Submit (function () - Я получаю доступ к элементам формы таким образом: var emailval = $ ("# emails"). Val ();

Но сейчас у меня нет формы, и этот список друзей генерируется в цикле. Итак, вот сомнения, которые у меня есть

1) Нужно ли создавать уникальный идентификатор в цикле для каждого тега href

2) Как мне изменить этот $ ("# Invite_form"). Submit (function () - Будет ли он ("# ahref1"). click (function (), где ahref1 - уникальный идентификатор тега href

3) Как получить доступ к полю friend_id в функции Jquery, которое присутствует в значении href, например, href = "/ action? Friend_id = 32"

Не уверен, что я иду по правильному пути Спасибо

Ответы [ 2 ]

1 голос
/ 20 февраля 2010

Вы можете отправить в серверный скрипт, используя $ .post () или $ .get () в jQuery

.

Пример:

$("#ahref1").click(function(){
  var this_friend_id = $(this).prev('input.friend_id').val();
  // Assuming that you store the id in a hidden input field like <input type="hidden" class="friend_id" val="32" /> which is defined just before the a href.
  $.get('/action', {
     friend_id: this_friend_id
    }, function(data){
       // callback after the ajax request
       alert("The response is : "+data);
    });
});

Это должно решить проблему.

0 голосов
/ 20 февраля 2010

1) Нет, нет. Вы всегда можете создать цикл jquery с помощью .each () и настроить свой скрипт, например

$(document).ready({
    $('#friend_list a').each(function () {
        // Point to current <a>
        var $this = $(this);
        // ... your code for each a in your list
    });
});

2) Вы можете изменить функцию отправки как

$(document).ready({
    $('#friend_list a').each(function () {
        var $this = $(this);
        // Save current href
        var href = $this.attr('href');
        // When user click
        $this.click(function(e) {
            // Doesn't follow the href path
            e.preventDefault();
            // ... your custom operation here
        });
    });
});

3) Вы можете использовать регулярное выражение

$(document).ready({
    $('#friend_list a').each(function () {
        var $this = $(this);
        var href = $this.attr('href');
        $this.click(function(e) {
            e.preventDefault();
            // Assuming your link is in form "/action?friend_id=32"
            var re = new RegExp("\d+");
            var id = re.exec(href);
            // I prefer AJAX method, this is just a sample, to complete
            $.post('/action', 
                   { friend_id: id }, 
                   function(data) {
                      // ... result here
                   });
        });
    });
});
...