我有很多报告。每个报告都是自己的页面。当用户在页面上时,我希望他们能够将报告添加到他们的收藏夹中。我不是指浏览器的最爱,我的意思是他们登录系统时最喜欢的报告
谷歌搜索这个,出于显而易见的原因,带回了关于如何添加到浏览器收藏夹的无尽教程/脚本,这不是我想要的
我有一个按钮说"添加到收藏夹"。单击此按钮时,应添加报告。然后应该删除该按钮并替换为一个说"从收藏夹删除"
我意识到需要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
});
});
});
答案 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
});
});
});