Jquery提交多个链接

时间:2010-02-20 08:51:17

标签: jquery jquery-ui jquery-plugins

我有一个页面显示用户列表,每个用户旁边都有一个“添加为好友”链接。

现在当用户点击“添加为好友”链接时 - 我想调用Jquery并将该请求提交给后端PHP。

通常我使用Jquery的经验涉及在页面中使用单个表单并通过Jquery提交该表单 - 每个表单都有一个ID - 使用该ID我调用提交函数$(“#invite_form”)。submit(function() - 我以这种方式访问​​表单元素var emailval = $(“#email”)。val();

但现在我在这里没有表格,这个朋友列表正在循环中生成。 所以这里有我的怀疑

1)我是否需要在每个href标签的循环中创建一个唯一的id

2)如何更改此$(“#invite_form”)。submit(function() - 是否会成为 (“#ahref1”)。click(function()其中ahref1是href标签的唯一ID

3)如何访问Jrefery函数中的friend_id字段,该函数存在于href值中,如href =“/ action?friend_id = 32”

不确定我是否走上了正确的轨道 感谢

2 个答案:

答案 0 :(得分:1)

您可以在jQuery中使用$ .post()或$ .get()提交后端脚本

一个例子:

$("#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);
    });
});

这应该可以解决问题。

答案 1 :(得分:0)

1)不,你没有。您始终可以使用.each()创建jquery循环,并自定义您的脚本,如

$(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
                   });
        });
    });
});