长话短说:我正在尝试创建一些类似从数据库中获取的帖子的社交媒体供稿。我遇到的问题是喜欢的系统。我正在将数据提取到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调用。
答案 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