gpt4 book ai didi

Javascript 下拉菜单对象仅切换第一个下拉菜单

转载 作者:行者123 更新时间:2023-12-03 02:10:03 25 4
gpt4 key购买 nike

我使用 Javascript、PHP、CSS 和 HTML 创建了一组下拉项。该页面的目标是以下拉样式提供更多信息。它从 MySQL 数据库中提取数据并使用 PHP while 循环创建多个下拉项。但是,当我单击任何下拉列表时,它只会切换第一个下拉列表,而不是目标下拉列表。

HTML:

<?php
session_start();
if(!isset($_SESSION['login'])) {
header('Location: AdminLogin.php');
exit;
}
$user = 'root';
$password = 'hidden';
$db = 'Internships';
$host = 'localhost';

$conn = new mysqli($host, $user, $password, $db);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Internships</title>
<link href="UserStyle.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<link rel="stylesheet" href="css/dropdown.css">
</head>

<body>
<img src="BT-Square-Logo.png" class="logo" alt='BT Logo'>
<header>
<div class="container">
<nav>
<ul>
<li><a href='Pre-approved_Internships.php'>Pre-approved Internships</a></li>
<li><a href='Logout.php'>Logout</a></li>
</ul>
</nav>
</div>
</header>
<?php
$result = mysqli_query($conn, "SELECT * FROM Internships");
while($row = mysqli_fetch_array($result)):
?>
<div class="demo">
<div class="head" onclick="toggleActive(); return false;"><?= $row['Company'] ?>
</div>
<div class="content-outer hidden">
<div class="content-inner">
<table style="width:100%">
<tr>
<th>Cluster</th>
<th>Company</th>
<th>First Name</th>
<th>Last Name</th>
<th>Address</th>
<th>Phone</th>
<th>Fax</th>
<th>Email</th>
<th>Description</th>
<th>Skills</th>
<th>Tasks</th>
<th>Hours</th>
<th>Number of Students</th>
</tr>
<tr>
<td><?= $row['Cluster']; ?></td>
<td><?= $row['Company']; ?></td>
<td><?= $row['FName']; ?></td>
<td><?= $row['LName']; ?></td>
<td><?= $row['Address1'] . ', ' . $row['Address2'] . ', ' . $row['City'] . ', ' . $row['State'] . ', ' . $row['Zipcode']; ?></td>
<td><?= $row['Phone']; ?></td>
<td><?= $row['Fax']; ?></td>
<td><?= $row['Email']; ?></td>
<td><?= $row['Description']; ?></td>
<td><?= $row['Skill1'] . ', ' . $row['Skill2'] . ', ' . $row['Skill3'] . ', ' . $row['Skill4'] . ', ' . $row['Skill5'];?></td>
<td><?= $row['Task1'] . ', ' . $row['Task2'] . ', ' . $row['Task3'] . ', ' . $row['Task4'] . ', ' . $row['Task5']; ?></td>
<td><?= $row['Hours']; ?></td>
<td><?= $row['Students'] ?></td>
</tr>
</table>
</div>
</div>
</div>
<?php endwhile; ?>
<script src="js/dropdown.js"></script>
</body>
</html>

Javascript:

const content = document.querySelector('.content-outer')

function toggleActive () {
content.classList.toggle('hidden')
}

最佳答案

您正在使用querySelector选择 DOM 中的第一个元素。为此,每个元素都需要有一个唯一的 ID。如果您有一个名为 id 的列或者类似包含唯一 ID 的内容,您可以使用它。

改变这个

<div class="head" onclick="toggleActive(); return false;">

进入此

<div class="head" onclick="toggleActive("<?= $row['id']; ?>"); return false;">

还有这个

<div class="content-outer hidden">

进入此

<div id="content-<?= $row['id']; ?>" class="content-outer hidden">

JavaScript 是

function toggleActive (id) {
document.getElementById("content-"+id).classList.toggle('hidden')
}

您实质上是为您的元素提供了唯一的标识符,因此您可以通过 Javascript 访问它们。

如果您没有id ,您可以在 while 内使用计数器.

关于Javascript 下拉菜单对象仅切换第一个下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com