PHP将PHP id变量传递给jquery以获得div滑入

PHP将PHP id变量传递给jquery以获得div滑入,php,jquery,Php,Jquery,我有一个div,在触发时会滑入: <a href="javascript:void(0)" id="'. $row['post_id'] .'" onclick="chatWith(id)"> 使用jquery: function chatWith(postid){ $("#chat_window").slideToggle("up"); $(".chat_postid").text(postid); } <div id="chat_window">

我有一个div,在触发时会滑入:

 <a href="javascript:void(0)" id="'. $row['post_id'] .'" onclick="chatWith(id)">

使用jquery:

function chatWith(postid){
  $("#chat_window").slideToggle("up");  
  $(".chat_postid").text(postid); 
}

<div id="chat_window">
    <span class="chat_postid"><?php echo $_POST['id']; ?></span>
</div>
功能聊天功能(postid){
$(“聊天窗口”)。滑动切换(“向上”);
$(“.chat_postid”).text(postid);
}
我想要一个新的聊天专用的项目弹出

感谢您的帮助

试试下面的代码

<a href="javascript:void(0)" data-id="<?php echo $_POST['id']; ?>" class="chat_window">Text</a>

$('a.chat_window').click(function()
{
    var id = $(this).attr('data-id');
    alert(id);
});

$('a.chat_window')。单击(函数()
{
var id=$(this.attr('data-id');
警报(id);
});

请记住,php是在服务器上执行的,它在脚本中输出的任何内容都是在生成页面时完成的,然后php无法再次修改。您需要使用ajax调用从服务器获取您的id或任何东西。这很好,因为该项将永远具有相同的id。我希望聊天窗口只显示该id,并在聊天框中显示该项目的相关信息,然后
onclick='chatwith(this.id)
利用DOM树中的每个节点都知道它在哪里这一事实,您可以从该节点获取数据,例如,onclick事件将出现在
标记处,因为这是单击的起源,允许您获取其id属性。我尝试了这一点,但我不确定在以下函数chatWith(idd){$(“#chat_window”).slideToggle(“up”);$(“#chat_window”).text(idd)}之后如何显示它。请参见jQuery
数据()
函数,
$(此).data('id');
是正确的方法,您是否仔细阅读了
OP
问题???如何为每个id创建一个唯一的聊天窗口?请查看上面的代码(更新)如何将其放入其中?用我现在更新的函数替换您的
chatWith()
函数。$(“#chat"posted)没有意义。它将如何得到它?这不起作用。我们正在添加具有该id的span类,以便您可以滑动切换它。您甚至可以暂时删除该行,因为它不是必需的。
$(document).ready(function() {
    $('a').click(function() {
       var user_id = $(this).attr('id');
       $("#chats").append('<div class="chat_window" id="chat_' + user_id +'">Chat window for id: '+ user_id +'</div>');
       $("#chat_"+user_id).slideToggle("up"); 
    });
});
<div id="chats"></div>
function chatWith(postid){ 
       $("#chat_window").append('<span class="chat_postid" id="chat_' + postid+'">Chat window for id: '+ postid+'</span>');
       $("#chat_"+postid).slideToggle("up");  
}