当不隐藏时,只显示sql的第一个结果
Only the first results of sql show when unhidden
我之前问了一个关于如何使用jquery在单击时隐藏和显示sql结果的问题。感谢Þaw帮了我的忙…现在我转向了类似但又不同的东西,更像是"代码中的bug"。我有一个php文件,从db表中检索所有数据,只显示一行(表中数据的标题)。单击标题后,将显示一个隐藏的div,该div返回其余数据。我在这里遇到的问题是,在表中的多个条目…显示/隐藏魔术只适用于第一行,无论我单击哪个标题。
这是我的js
function showDiv() {
if (document.getElementById('hiddenDiv').style.display == 'block') {
document.getElementById('hiddenDiv').style.display = 'none';
} else {
document.getElementById('hiddenDiv').style.display = 'block';
}
}
这是我的php/html
<div><h2 Style="margin:auto;display: block; padding-bottom: 0; margin-bottom: 0; background: #e0741b; width: auto;color: white;" onclick="showDiv();"><?php echo $rows['title']; ?></h2></div>
<div id="hiddenDiv" style="display:none">
<strong><h3 style="color:black" ><? echo $rows['name']; ?></h3></strong><br/>
<p style="color: grey; font-size:10pt;"><strong><?php echo $rows['details']; ?> </strong></p>
<p style="font-size: 10pt;"> <strong>Email:</strong> <?php echo $rows['email']; ?></p>
<p style="font-size: 10pt;"> <strong>Phone:</strong> <?php echo $rows['phone']; ?></p>
<p style="font-size: 10pt;"> <strong>Link:</strong> <?php echo $rows['link']; ?></p>
</div>
不是我要写的代码,而是使用您自己的代码来解决隐藏/显示问题:注意$rows['id']
的添加,这假设数据有一个名为id的字段(将其更改为实际唯一字段名称)
<script>
function showDiv(id) {
if (document.getElementById('hiddenDiv'+id).style.display == 'block') {
document.getElementById('hiddenDiv'+id).style.display = 'none';
} else {
document.getElementById('hiddenDiv'+id).style.display = 'block';
}
}
</script>
--LOOP STARTS--
<div>
<h2 Style="margin:auto; display: block; padding-bottom: 0; margin-bottom: 0; background: #e0741b; width: auto;color: white;" onclick="showDiv(<?php echo $rows['id']; ?>);"><?php echo $rows['title']; ?></h2></div>
<div id="hiddenDiv<?php echo $rows['id']; ?>" style="display:none">
<strong><h3 style="color:black"><? echo $rows['name']; ?></h3></strong><br />
<p style="color: grey; font-size:10pt;"><strong><?php echo $rows['details']; ?> </strong></p>
<p style="font-size: 10pt;"><strong>Email:</strong> <?php echo $rows['email']; ?></p>
<p style="font-size: 10pt;"><strong>Phone:</strong> <?php echo $rows['phone']; ?></p>
<p style="font-size: 10pt;"><strong>Link:</strong> <?php echo $rows['link']; ?></p>
</div>
-- LOOP ENDS ---
那么你要做的就是给hiddendiv一个唯一的id然后把这个id传递给show/hide js函数这样它就知道要显示和隐藏
每个DOM元素只能有一个ID属性值。每个ID必须是文档唯一的。
循环在哪里?我错过什么了吗?在隐藏的DIV中应该有如下内容。这是一个通用的表格,根据你所做的调整它。我不确定您正在使用哪个数据库连接,这是假设PDO。
echo '<table>';
echo '<thead><tr><td>Name</td><td>details</td><td>email</td><td>phone</td></tr></thead>';
while ($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
echo '<tr>';
echo '<td>' . $row['name'] . '</td>';
echo '<td>' . $row['details'] . '</td>';
echo '<td>' . $row['email'] . '</td>';
echo '<td>' . $row['phone'] . '</td>';
echo '</tr>';
}
echo '</table>';
我知道这与你想要的布局不同,但这是总体思路。
希望对你有帮助。
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - JS在隐藏未定义的值后仅从数组中返回第一个id的值
- 高图表,检测点是否在堆栈中的第一个
- json结果显示第一个值
- 我的设备后退按钮工作不正常,它转到第一个html,但返回到第二个html