如何获取我点击的按钮的ID

时间:2019-08-15 15:59:43

标签: javascript php html mysql ajax

长话短说:我正在尝试创建一些类似从数据库中获取的帖子的社交媒体供稿。我遇到的问题是喜欢的系统。我正在将数据提取到HTML div中,一切都很好,每个帖子都与其分配的postid不同(回显id会为每个id返回正确的id)。

问题开始的地方是将单击特定按钮的postid放到javascript变量中,然后放到php脚本中。我的帖子的postid为“ 62、61、60、59等”,但是无论我单击哪个,getElementById(“ idOfClickedButton).textContent(现在我在按钮中回显了它)都只能得到62。带有getElementById(“ idOfClickedButton).value的东西,但此按钮为每个按钮获取最后加载的帖子(假设是53或43)。

我想知道如何将分配的postid传递给js变量。

//PHP variable of postid
$id=$row['p_id'];

//that's the paragraph that checks the postid
<p id="likeit" onclick="check()"><?php echo $id ?></p>

//JS script that checks the postid
<script>
function check(){
    var p = document.getElementById("likeit").textContent;
    console.log(p);
}
</script>

AJAX调用有效,因此不包括在内。控制台上方的代码为每个段落记录了“ 62”,尽管每个段落都有不同的textContent显示。 img of HTML of what it looks like and that it displays correct postid突出显示的是用于检查ID的段落,上方的按钮用于AJAX调用。

2 个答案:

答案 0 :(得分:2)

<p id="likeit" onclick="check(this)"><?php echo $id ?></p>

将此添加到函数中

  function check(el){

        var p = document.getElementById("likeit").textContent;
        console.log(p);
        console.log(el.id);


    }

答案 1 :(得分:0)

对于任何想知道我的解决方法的人:

//input inside a form
<input type="submit" onclick="check(this)" value="<?php echo $id ?>">

//AJAX call with value check

function check(el){

var pid = el.value;
console.log(pid);
$('form').submit(function(e) {
    e.preventDefault();
    e.stopPropagation();
    $.ajax({
        type: 'POST',
        url: 'url',
        data: { 
            liked: 1,
            pid: pid }
    });
    return false;
}); 
}

尽管此解决方案将已单击的值存储在变量中,但每次单击有效地输入+1记录。需要进一步的tweeking