Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单个页面上放置多个显示/隐藏功能?_Javascript_Php_Show Hide - Fatal编程技术网

Javascript 如何在单个页面上放置多个显示/隐藏功能?

Javascript 如何在单个页面上放置多个显示/隐藏功能?,javascript,php,show-hide,Javascript,Php,Show Hide,从数据库获取信息 $video_id = $_GET['id']; $query = "SELECT * FROM video_comments WHERE video_id = :video_id"; $stmt = $pdo->prepare($query); $stmt->bindValue(':video_id',$video_id); $stmt->execute(); while($row = $stmt->fetch(PDO::FETCH_ASSOC))

从数据库获取信息

$video_id = $_GET['id'];
$query = "SELECT * FROM video_comments WHERE video_id = :video_id";
$stmt = $pdo->prepare($query);
$stmt->bindValue(':video_id',$video_id);
$stmt->execute();

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

$id = $row['id']; // The id for each comment

// Show/Hide Script
echo '<script>function replyToCommentFunction'.$id.'() {
var x = document.getElementById("replyToComment'.$id.'");
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "block";
}
}</script>';

<button name="replyToComment" class="videoCommentsReplyButton" onClick="replyToCommentFunction'.$id.'()">Reply</button>

// The Div to show...
echo '<div id="replyToComment'.$id291.'">';
echo 'Hello, World!';
echo '</div>';

}
$video\u id=$\u GET['id'];
$query=“从视频\u注释中选择*,其中视频\u id=:视频\u id”;
$stmt=$pdo->prepare($query);
$stmt->bindValue(':video\u id',$video\u id);
$stmt->execute();
而($row=$stmt->fetch(PDO::fetch\U ASSOC)){
$id=$row['id'];//每个注释的id
//显示/隐藏脚本
回显“函数replyToCommentFunction.”$id.(){
var x=document.getElementById(“replyToComment.$id.”);
如果(x.style.display==“块”){
x、 style.display=“无”;
}否则{
x、 style.display=“block”;
}
}';
回复
//要显示的Div。。。
回声';
回声‘你好,世界!’;
回声';
}

我还以为我能用呢。但是现在,页面上只有一个“回复”按钮可用。最新的回复按钮刷新页面,这让我很困惑,因为没有脚本或操作存在,这些脚本或操作会告诉它提交表单或刷新页面。我将感谢任何帮助。谢谢。

能否尝试将type=“button”添加到刷新页面的按钮

既然你可以创建一个函数并让所有的按钮都可以使用,为什么还要创建很多函数呢

在页面末尾添加以下代码:

<script type="text/javascript">
function replyToCommentFunction(x) {
    if(x.style.display === "block") {
        x.style.display = "none";
    } else {
        x.style.display = "block";
    }
}
</script>

函数replyToCommentFunction(x){
如果(x.style.display==“块”){
x、 style.display=“无”;
}否则{
x、 style.display=“block”;
}
}
编辑此按钮:

<button name="replyToComment" class="videoCommentsReplyButton" onClick="replyToCommentFunction(this);">Reply</button>
回复

如果页面上的所有DIV都具有相同的id值(实际上是不允许的),函数如何理解要扩展哪个DIV。是的,(this)会将单击的元素发送给函数。函数没有按id捕获元素,这就是我删除此行的原因。函数上的x已经是元素,因此不再需要“getElementById”。)好的,但还是有点困惑我从你那里得到了这个<代码>一个功能第a部分,
第b部分
第c部分
<代码>按钮a,
按钮b
按钮c
。信息从按钮a传递到唯一的功能。那么从函数到,哪个div?什么确切地告诉按钮哪个div应该扩展,因为不再需要id了。必须有一些东西来标识正在扩展的div,对吗?您可以在button onclick属性上这样做
,然后您可以通过ID在函数上获得带有变量x的div元素。
document.getElementById(“replyToComment”+x)
。啊,我明白了。非常感谢你。我一直认为循环脚本是不合适的。直到现在我才知道另一种方法。谢谢。这是一个很好的实践,不管它是否解决了op的问题