Javascript Like按钮:单击时将特定变量从PHP传递给Jquery

Javascript Like按钮:单击时将特定变量从PHP传递给Jquery,javascript,php,jquery,Javascript,Php,Jquery,我有一个简单的php代码,它显示了所有用户的帖子,所有用户都有一个独特的'like'按钮: $sql = "SELECT * FROM posts"; $result = mysqli_query($con,$sql); while($row=mysqli_fetch_assoc($result)){ $post_content = $row['content']; $post_id = $row['id']; echo $post_content ."<br/>";

我有一个简单的php代码,它显示了所有用户的帖子,所有用户都有一个独特的'like'按钮:

$sql = "SELECT * FROM posts";
$result = mysqli_query($con,$sql);

while($row=mysqli_fetch_assoc($result)){
  $post_content = $row['content'];
  $post_id = $row['id'];

  echo $post_content ."<br/>";
  echo "<a href = '#' id = 'likebutton' onclick = 'like_add($post_id )>Like</a>";
}
然而,我得到了这个错误:

引用错误:未定义2dg7c

这里的
2dg7c
是一篇文章的id,我在其中单击了
LIKE


我遗漏了什么吗?

更改链接代码如下:-

echo "<a href='#' id='likebutton' onclick='like_add(\"{$post_id}\")'>Like</a>";
echo”“;
试试:
echo”“


在将参数传递给函数之前,您应该添加
。在您的状态下,javascript认为您引用了一个变量作为参数。但您希望发送字符串。

您刚才错过了关闭单引号

echo "<a href = '#' id = 'likebutton' onclick = 'like_add($post_id)>Like</a>";
echo”“;
只需将上述内容替换为

echo "<a href = '#' id = 'likebutton' onclick = 'like_add(\"$post_id\")'>Like</a>";
echo”“;

始终尝试在引号中传递值

echo "<a href = '#' id = 'likebutton' onclick = 'like_add('".$post_id."' )'>Like</a>";
echo”“;

您需要像这样使用斜杠(\)对双引号进行转义

echo "<a href ='#' id ='likebutton' onclick='like_add(\"{$post_id}\")'>Like</a>";
echo”“;
试试这个:

echo '<a href = "#" id = "likebutton" onclick = "like_add({$post_id})">Like</a>';
echo';
原因: 存在连接问题。
Php变量没有绑定到字符串中。要绑定它,我们可以断开长字符串并用点连接。或者使用{}或使用herdocs。

这是您应该如何编写的

echo "<a href='#' id='likebutton' onclick=like_add('".$post_id."')>Like</a>";
echo”“;

您是否尝试过“like_add('$post_id')”?实际上,我应该抛出一个语法错误,对吗?类似于:SyntaxError:identifier的内容在数值文本之后立即开始。
echo";是一个字符串,您传递时不带引号,因此无法使用。顺便说一句,您必须使用`\`,这不是传递给jQuery,而是传递给JavaScript。请改用
console.log()
。它对我有用。我想你还有其他一些问题@DranrebI在第一个问题上遇到了类似这样的错误bro`expected expression,get'}',我遇到了一个
非法字符
错误。第二个是我的原始代码,它不起作用。我遵循了第二个代码,仍然得到了这个错误:
ReferenceError:2dg7c未定义
。。。先生,你能发布这个问题的工作片段吗?也许我的电脑真的出了问题codes@Dranreb很高兴帮助你:)这行不通。因为
onclick
事件是以使用
开始的。
。你想这样做->
onclick='like_add('2dg7c'),
试试这个:echo';我得到了这个错误bro=expected表达式,得到了'}'Do或Do,没有“try”。一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。两个人都不起作用,,,给了我一个错误。。我想这是因为“JayBrAcRead更新我的答案,你的代码返回这个代码> <代码>。请在发布答案之前进行测试。变量没有得到解析。在单引号中,所有的东西都被认为是一个字符串,为什么OP应该这样使用?"? 一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。我真的想删除
=
周围的空格,但这是有效的。对其他人没有测试他们的代码感到惊讶。
=
两侧都有一个空格。
echo "<a href='#' id='likebutton' onclick=like_add('".$post_id."')>Like</a>";