jQuery - 添加到收藏夹

时间:2014-04-07 10:03:20

标签: jquery post jquery-post jquery-click-event

我有很多报告。每个报告都是自己的页面。当用户在页面上时,我希望他们能够将报告添加到他们的收藏夹中。我不是指浏览器的最爱,我的意思是他们登录系统时最喜欢的报告

谷歌搜索这个,出于显而易见的原因,带回了关于如何添加到浏览器收藏夹的无尽教程/脚本,这不是我想要的

我有一个按钮说"添加到收藏夹"。单击此按钮时,应添加报告。然后应该删除该按钮并替换为一个说"从收藏夹删除"

我意识到需要ASP / PHP来进行实际的添加/删除,但是如何实现这一目标的任何指导都将是最有帮助的。

是否会出现

$(function() {
  $('.report_add').click(function() {
    this_id= this.attr("id");
    $.ajax({
      type: 'POST',
      data: 'reportid'+this_id+'=&userid=789',
      success: function() { ... },
      error: function(){ ... },
      url: '/url/',
      cache:false
    });
  });
});

2 个答案:

答案 0 :(得分:2)

你可以改变这个:

this_id= this.attr("id");

data: 'reportid'+this_id+'=&userid=789',

到此:

var this_id= this.id;

data: 'reportid='+this_id+'&userid=789',

或:

var this_id= $(this).attr("id"); // add a jQuery wrapper

data: 'reportid='+this_id+'&userid=789',

在您的代码中,您有两个问题

1。您没有正确选择ID,因为您将jQuery的.attr()方法应用于dom节点而不是jQuery对象。所以必须是this.id$(this).attr('id')

2。您的数据字符串格式不正确:

data: 'reportid'+this_id+'=&userid=789',
//-------------^----------^--------------your '=' sign is at wrong place

相反,您可以发送如下值:

 data: 'reportid='+this_id+'&userid=789',

data: {reportid : this_id, userid : 789},

你的代码中的

$(function() {
   $('.report_add').click(function() {
     var this_id= this.id; // <---------update this
     $.ajax({
        type: 'POST',
        data: {reportid : this_id, userid : 789}, // <---- and this
        success: function() { ... },
        error: function(){ ... },
        url: '/url/',
        cache:false
     });
  });
});

答案 1 :(得分:1)

试试这个

$(function() {
  $('.report_add').click(function() {
    this_id= $(this).attr("id");
    $.ajax({
      type: 'POST',
      data: 'reportid'+this_id+'&userid=789',
      success: function() {
      $(this).text('Remove From Favourite');
      },
      error: function(){ ... },
      url: '/url/',
      cache:false
    });
  });
});