Как получить идентификатор тега в JavaScript - PullRequest
0 голосов
/ 08 декабря 2018

Итак, я создаю веб-сайт, где пользователь может добавлять интересы на страницу своего профиля.На странице профиля я напечатал все интересы (теги) из базы данных.Теперь я пытаюсь сделать функцию onclick, поэтому, когда пользователь нажимает на тег, он перемещается в mytags, и это работает.Но я также хочу сохранить user_id и Interest_id в моей соединительной таблице, называемой gebruiker_interesses.

(Внутри adminData [i] есть все данные внутри таблицы интересов. Моя таблица интересов выглядит так:

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

Вот как я сделал свою функцию onclick под названием addToMyTags:

 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_INTERESSE тега (Var), на который я нажал, чтобы я мог выполнить запрос и вставитьданные в мою распределительную таблицу под названием gebruiker_interesse, но я не знаю, как это сделать. Любая помощь приветствуется

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

В вашем начальном цикле выведите идентификатор для атрибута данных:

  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);
}
0 голосов
/ 08 декабря 2018

Вам, вероятно, следует сохранить "id" в качестве атрибута данных в "li" и получить к нему доступ, используя этот метод: Получение атрибута data- * для события onclick для элемента html

...