因此,我正在建立一个网站,用户可以在其中添加兴趣到其个人资料页面。在个人资料页面上,我从数据库中打印了所有兴趣(标签)。现在,我试图创建一个onclick函数,以便当用户单击a标记时,该标记会移动到mytags上并且可以正常工作。但是我也想将user_id和interest_id保存到名为gebruiker_interesses的联结表中。
(在adminData [i]内部,所有的数据都在interesses表内。 我的Interesse表看起来像这样:
PK: ID_INTERESSE
INTERESSE
这是我打印所有标签(兴趣)的功能
function interessesPrinten() {
var query = "SELECT * FROM interesses";
var adminData = Array();
databaseManager
.query(query)
.done(function (data) {
console.log(data.length);
var ul = profielView.find('.tags');
for (var i = 0; i < data.length; i++) {
adminData[i] = data[i];
}
for (var i = 0; i < adminData.length; i++) {
var li = $("<li>")
.addClass("tag")
.html(adminData[i].INTERESSE)
.on("click", function() {
addToMyTags($(this));
});
ul.append(li);
}
})
.fail(function (err) {
console.log(err);
});
}
如您所见,在函数内部我创建了一个onclick函数:
.on("click", function() {
addToMyTags($(this));
});
这就是我制作名为addToMyTags的onclick函数的方式:
function addToMyTags(element) {
var tag = element.text();
console.log(tag);
var interesse_ID = //?? I don't know how to get the id
var gebruiker_ID = [session.get('gebruiker_id')];
console.log(gebruiker_ID);
console.log(interesse_ID);
databaseManager
.query("INSERT INTO GEBRUIKER_INTERESSE (ID_INTERESSE, ID_GEBRUIKER) VALUES (?)", [interesse_ID, gebruiker_ID])
$(".mytags").append(element);
}
因此,我试图获取单击的id(Var)的ID(ID_INTERESSE),以便执行查询并将数据插入名为gebruiker_interesse的联结表中,但我不知道该怎么做。 任何帮助表示赞赏
答案 0 :(得分:0)
您可能应该将“ id”作为数据属性存储在“ li”上,并使用以下方法访问它:Getting data-* attribute for onclick event for an html element
答案 1 :(得分:0)
在您的初始循环中,将id输出到data属性:
function interessesPrinten() {
var query = "SELECT * FROM interesses";
var adminData = Array();
databaseManager
.query(query)
.done(function (data) {
console.log(data.length);
var ul = profielView.find('.tags');
for (var i = 0; i < data.length; i++) {
adminData[i] = data[i];
}
for (var i = 0; i < adminData.length; i++) {
var li = $("<li>")
.addClass("tag")
.data('interesse_id', adminData[i].INTERESSE_ID)
.html(adminData[i].INTERESSE)
.on("click", function() {
addToMyTags($(this));
});
ul.append(li);
}
})
.fail(function (err) {
console.log(err);
});
}
...然后再访问它:
function addToMyTags(element) {
var tag = element.text();
console.log(tag);
var interesse_ID = element.data('interesse_id'); // get the id
var gebruiker_ID = [session.get('gebruiker_id')];
console.log(gebruiker_ID);
console.log(interesse_ID);
databaseManager.query("INSERT INTO GEBRUIKER_INTERESSE (ID_INTERESSE, ID_GEBRUIKER) VALUES (?)", [interesse_ID, gebruiker_ID])
$(".mytags").append(element);
}