我为我正在处理的项目网站建立了状态和回复系统。
我将隐藏按钮内每个状态帖子的回复框,并使用js中的.toggle()
功能使其显示onclick并再次隐藏onclick。我使用PHP variable
作为hidden div
的id,Variable
包含数据库状态的id,因为这是使每个状态唯一的唯一因素,因此使用此作为回复的div ID是有意义的,因为它会为每个回复框提供其父级的ID,使其成为回复框链接的每个状态的唯一回复框。下面的toggle function
切换没有问题,因此我知道id
的{{1}}适用于div
,并且切换功能可以获取内容中的ID php变量。
我遇到的问题是切换功能本身只是切换底部id
的回复框,无论按下什么回复按钮,例如状态1,2或回复3.图像显示的是显示,这是在按下顶级状态div
按钮之后。显示的回复框也只链接到底部open reply
,所以如果我按下顶部div
按钮,则底部状态下方显示的回复框仅发送回复到底部状态,而不是到顶部一个,所以无论按下什么按钮,它都会打开底部状态回复框。
我道歉,因为我要在这里发布实际图像,但我不能因为我没有10的声誉。如果我到10,我将删除此文本并链接并将其替换为图像。 open reply
请忽略这样一个事实,即回复没有显示在他们自己的div中,并且在图片中显示为黑色写入,因为我还没有创建css代码以便以整洁的方式显示这些。
下面是两个版本的js切换功能,它们都可以工作,但它们都能解决上述问题 脚本1
http://gyazo.com/97e8ac89ec623d5a876ee2ebb63fe8fb
这是脚本2具有相同效果的
<script>
var show;
show = '<?= $status_id ?>';
function showreply() {
$('#' + show).toggle();
}
</script>
下面是php代码,其中<script>
function showreply() {
$('#<?php echo $status_id?>').toggle();
}
</script>
使用js切换,并且具有使用php变量设置的唯一ID。
div
正如我所说的问题是js脚本没有针对每个唯一的div运行,并且仅适用于底部div,无论是显示的是2还是10个div。它跳过它上面的所有div并认为所有$mail .= '<div id="'.$status_id.'" class="replyholder">.......THIS IS THE CONTENT......</div>';
按钮都属于底部div。
下面是单击时运行js脚本的按钮代码。
open reply
这个按钮代码放在我实际代码中使用js脚本切换的$mail .= '<button class="replybutton" onclick="showreply();">Open Reply</button>';
之上,所以请不要认为我在div下面有这个按钮。
如果有可能做我想做的事,有谁知道如何解决这个问题。我很感激任何人都可以提供任何帮助,因为我不能继续使用这个状态系统,因为我还需要采用相同的js脚本来切换回复的查看,这样我就能整齐地压缩我网站上的所有内容。
感谢您阅读本文,我期待您的回答
答案 0 :(得分:1)
试试这种方式
的javascript:
<script>
function showreply(elem) {
$(elem).next("div").toggle();
}
</script>
PHP:
$mail .= '<button class="replybutton" onclick="showreply(this);">Open Reply</button>';