【发布时间】:2016-11-02 08:05:24
【问题描述】:
我创建了一个从 MySQL 数据库中检索数据的 PHP 页面。我在数据库中插入了四条记录。数据在 index.php 页面上显示良好,但我想显示记录,如附在此处的图像中所示。我希望所有记录都关闭,当点击名称时它会打开。其他保持关闭,当其他打开时关闭。现在,当我单击任何名称时在浏览器中运行时,仅显示第一条记录。 (或使用 php、MySQL 等执行此操作的任何其他方式。)有什么帮助吗?
index.php:
<?php
ob_start();
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'test');
$connection = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error());
$database = mysql_select_db(DB_DATABASE) or die(mysql_error());
$select=mysql_query("SELECT * FROM sample order by id desc");
$i=1;
while($userrow=mysql_fetch_array($select))
{
$id=$userrow['id'];
$username=$userrow['username'];
$usercity=$userrow['usercity'];
$useraddress=$userrow['useraddress'];
$usermail=$userrow['emailid'];
$usermobile=$userrow['mobileno'];
$created=$userrow['created']
?>
<div class="display" style="width:500px">
<!-------------------- User Name : --------------------------------->
<p id="User-Name" style="color:#999" onclick="showDiv();"> Name- <span style="color: #999"><?php echo $username; ?></span>
<span class="delete" title="Delete"> X </span></a>
</p>
<br />
<!--------------------- User City : ----------------------------------->
<p style="margin-left: 300px; margin-top: -45px; color:#999">City- <span style="color:#999"><?php echo $usercity; ?></span></p>
<br />
<div id="Entries" >
<!---------------------- User address : -------------------------------->
<p style="color:#999">Address- <span style="color:#999"><?php echo $useraddress; ?></span>
</p>
<br />
<!------------------ User Email Id : -------------------------------->
<p style="color:#999">Email- <span style="color:#999"><?php echo $usermail; ?></span>
<a href="edit.php?id=<?php echo $id; ?>"><span class="edit" title="Edit"> E </span></a>
</p>
<!--------------------- User Mobile : --------------------------------->
<br />
<p style="color:#999">Mobile- <span style="color:#999"><?php echo $usermobile; ?></span>
</p>
<!-------------------- User Created : ------------------------------->
<br />
<p style="color:#999"> <span style="color:#999"><?php echo $created; ?></span>
</p>
<br />
</div>
</div>
<?php } ?>
<script>
function showDiv()
{
document.getElementById('Entries').style.display = "block";
}
</script>
<style>
#Entries
{
display:none;
}
</style>
【问题讨论】:
-
因为当我运行 index.php 时出现 while 循环,“Display” div 会显示页面上的所有记录,但“Display” div 是复制的,所以 onclick 事件也会复制。当我单击任何名称并每次显示第一条记录时,它们的 onclick 事件就会触发一次。如何解决这个问题!
-
而不是
idforEntries,尝试将其更改为class并再次测试。因为id可以为第一个工作。并在你的函数中更改getElementByClassName()。 -
是的,我尝试过,但是“条目”div 中的数据是隐藏的,没有点击名称的活动。我认为 onclick="showDiv(); 是独一无二的。我认为如果为记录 1 分配动态 onclick 事件,如 showDiv1() 等等,那么问题就解决了,但是如何解决?
-
手风琴最适合这种情况jqueryui.com/accordion
-
我尝试“手风琴”对静态数据有好处。但是,因为“Entries” div 在循环中,它会重复,所以也是重复和冲突的,只有第一条记录是显示的。
标签: javascript php html css