单击菜单项 php 后如何将值从 while 循环传递到下一页
how to pass value from while loop to next page after clicking on menu item php
我有一个导航栏,其中一个导航项是一个带有子类别的下拉菜单。使用 while 循环仅从数据库中提取子类别。
单击其中一个下拉项目时,它们将被重定向到 dancerProfile.php。
我想dancerProfile.php从其他页面拉取菜单项名称。
html
<li class="li-spacing"><a href="parentdashboard.php">Home</a></li>
<li class="dropdown li-spacing">
<a class="dropdown-toggle" data-toggle="dropdown">Dancers<b class="caret"></b></a>
<ul class="dropdown-menu">
<?php
$dancers = "SELECT `dancer_name` FROM `dancers` WHERE name = '$name'";
$dres = mysqli_query($con,$dancers);
//if($res==FALSE){
//die('there was an error running query [' . $con->error . ']');
// }
while($data=mysqli_fetch_array($dres)){
$dancerName = $data['dancer_name'];
foreach ($dancerName as $DANCER){
echo '
<li><a href="dancerProfile.php?dancer_name=<?php echo $DANCER; ?>">'.$data["dancer_name"].'</a></li>
<li class="divider"><hr></li>
';
}
}
?>
<li><a href="addDancer.php">Add New</a></li>
</ul>
</li>
这很有效,因为所有舞者都出现在下拉列表中。
我想要的是,当我点击 dancerA 时,dancerProfile.php 将显示 dancerA 信息。当我点击 dancerB 时,它会显示 dancerB 信息等
但是无论点哪个名字都只会显示最后舞者的信息
dancerProfile.php
<div class="col-sm-6 dancerInfo">
<div class="row">
<div class="col-sm-6">
<div class="dancerName"><?php echo $dancerName;?></div>
</div>
所以当我在任何其他页面的导航栏上单击 dancerA 时,在 dancerProfile.php $dancerName 中应该打印 dancerA。如果我从导航栏中单击 dancerB,它应该会打印 dancerB。
但是无论我点击哪个link它都只会打印dancerB。
我正在使用 bootstrap。谁能帮帮我?
编辑
这是我的代码现在的更新。
<li class="li-spacing"><a href="parentdashboard.php">Home</a></li>
<li class="dropdown li-spacing">
<a class="dropdown-toggle" data-toggle="dropdown">Dancers<b class="caret"></b></a>
<ul class="dropdown-menu">
<?php
$dancers = "SELECT `dancer_name`, `id` FROM `dancers` WHERE name = '$name'";
$dres = mysqli_query($con,$dancers);
$dancerId= 'id';
}
while($data=mysqli_fetch_array($dres)){
$dancerName = $data['dancer_name'];
echo '
<li><a href="dancerProfile.php?id=<?php echo $dancerId; ?>">'.$data["dancer_name"].'</a></li>
<li class="divider"><hr></li>
';
}
?>
<li><a href="addDancer.php">Add New</a></li>
</ul>
</li>
和dancerProfile.php:
<?PHP
if(isset($_GET['id'])) {
$dancerId=$_GET['id'];
$dancerquery = "SELECT `dancer_name` FROM `dancers` WHERE id = " . $_GET['id'] . ";";
$dancer_res = mysqli_query($con,$dancers);
if($dancer_res){
$DANCER='dancer_name';
}
}
?>
<div class="col-sm-6 dancerInfo">
<div class="row">
<div class="col-sm-6">
<div class="dancerName"><?php echo " $DANCER ";?></div>
</div>
我还忘了说这个导航也在dancerProfile页面。所以我提供的所有代码都在 dancerProfile 页面上。我不知道这是否重要
My database table
您需要传递舞者 ID 或在您的舞者中是唯一的 table。如下所示。
<li><a href="dancerProfile.php?dancer_id=<?php echo $DANCER_id; ?>">'.$data["dancer_name"].'</a></li>
现在去 dancerProfile.php
试试这样的事情。
if (isset($_GET['dancer_id'])) {
$dancer_id=$_GET['dancer_id'];
//your query
}
您的完整代码:
<li class="li-spacing"><a href="parentdashboard.php">Home</a></li>
<li class="dropdown li-spacing">
<a class="dropdown-toggle" data-toggle="dropdown">Dancers<b class="caret"></b></a>
<ul class="dropdown-menu">
<?php
$dancers = "SELECT `dancer_name`, `id` FROM `dancers` WHERE name = '$name'";
$dres = mysqli_query($con,$dancers);
$dancerId= 'id';
}
while($data=mysqli_fetch_array($dres)){ ?>
$dancerName = $data['dancer_name'];
<li><a href="dancerProfile.php?id=<?php echo $data['id'];?>"><?php echo $data['dancer_name']; ?>'</a></li>
<li class="divider"><hr></li>
<?php } ?>
<li><a href="addDancer.php">Add New</a></li>
</ul>
</li>
你的dancerProfile.php
应该是
<?PHP
if(isset($_GET['id'])) {
$dancerId=$_GET['id'];
$dancerquery = "SELECT `dancer_name` FROM `dancers` WHERE id = '$dancerId'";
$dancer_res = mysqli_query($con,$dancerquery);
$data=mysqli_fetch_array($dancer_res);
}
?>
<div class="col-sm-6 dancerInfo">
<div class="row">
<div class="col-sm-6">
<div class="dancerName"><?php echo $data['dancer_name'];?></div>
</div>
您目前在每次迭代中都覆盖了 $DANCER
的值,因此最后一个将始终是使用的值。
稍微改变一下你的循环:
while($data=mysqli_fetch_array($dres)){
echo '<li><a href="dancerProfile.php?dancer_name='.$data['dancer_name'].'">'.$data['dancer_name'].'</a></li>';
}
我有一个导航栏,其中一个导航项是一个带有子类别的下拉菜单。使用 while 循环仅从数据库中提取子类别。
单击其中一个下拉项目时,它们将被重定向到 dancerProfile.php。
我想dancerProfile.php从其他页面拉取菜单项名称。
html
<li class="li-spacing"><a href="parentdashboard.php">Home</a></li>
<li class="dropdown li-spacing">
<a class="dropdown-toggle" data-toggle="dropdown">Dancers<b class="caret"></b></a>
<ul class="dropdown-menu">
<?php
$dancers = "SELECT `dancer_name` FROM `dancers` WHERE name = '$name'";
$dres = mysqli_query($con,$dancers);
//if($res==FALSE){
//die('there was an error running query [' . $con->error . ']');
// }
while($data=mysqli_fetch_array($dres)){
$dancerName = $data['dancer_name'];
foreach ($dancerName as $DANCER){
echo '
<li><a href="dancerProfile.php?dancer_name=<?php echo $DANCER; ?>">'.$data["dancer_name"].'</a></li>
<li class="divider"><hr></li>
';
}
}
?>
<li><a href="addDancer.php">Add New</a></li>
</ul>
</li>
这很有效,因为所有舞者都出现在下拉列表中。 我想要的是,当我点击 dancerA 时,dancerProfile.php 将显示 dancerA 信息。当我点击 dancerB 时,它会显示 dancerB 信息等
但是无论点哪个名字都只会显示最后舞者的信息
dancerProfile.php
<div class="col-sm-6 dancerInfo">
<div class="row">
<div class="col-sm-6">
<div class="dancerName"><?php echo $dancerName;?></div>
</div>
所以当我在任何其他页面的导航栏上单击 dancerA 时,在 dancerProfile.php $dancerName 中应该打印 dancerA。如果我从导航栏中单击 dancerB,它应该会打印 dancerB。
但是无论我点击哪个link它都只会打印dancerB。
我正在使用 bootstrap。谁能帮帮我?
编辑 这是我的代码现在的更新。
<li class="li-spacing"><a href="parentdashboard.php">Home</a></li>
<li class="dropdown li-spacing">
<a class="dropdown-toggle" data-toggle="dropdown">Dancers<b class="caret"></b></a>
<ul class="dropdown-menu">
<?php
$dancers = "SELECT `dancer_name`, `id` FROM `dancers` WHERE name = '$name'";
$dres = mysqli_query($con,$dancers);
$dancerId= 'id';
}
while($data=mysqli_fetch_array($dres)){
$dancerName = $data['dancer_name'];
echo '
<li><a href="dancerProfile.php?id=<?php echo $dancerId; ?>">'.$data["dancer_name"].'</a></li>
<li class="divider"><hr></li>
';
}
?>
<li><a href="addDancer.php">Add New</a></li>
</ul>
</li>
和dancerProfile.php:
<?PHP
if(isset($_GET['id'])) {
$dancerId=$_GET['id'];
$dancerquery = "SELECT `dancer_name` FROM `dancers` WHERE id = " . $_GET['id'] . ";";
$dancer_res = mysqli_query($con,$dancers);
if($dancer_res){
$DANCER='dancer_name';
}
}
?>
<div class="col-sm-6 dancerInfo">
<div class="row">
<div class="col-sm-6">
<div class="dancerName"><?php echo " $DANCER ";?></div>
</div>
我还忘了说这个导航也在dancerProfile页面。所以我提供的所有代码都在 dancerProfile 页面上。我不知道这是否重要
My database table
您需要传递舞者 ID 或在您的舞者中是唯一的 table。如下所示。
<li><a href="dancerProfile.php?dancer_id=<?php echo $DANCER_id; ?>">'.$data["dancer_name"].'</a></li>
现在去 dancerProfile.php
试试这样的事情。
if (isset($_GET['dancer_id'])) {
$dancer_id=$_GET['dancer_id'];
//your query
}
您的完整代码:
<li class="li-spacing"><a href="parentdashboard.php">Home</a></li>
<li class="dropdown li-spacing">
<a class="dropdown-toggle" data-toggle="dropdown">Dancers<b class="caret"></b></a>
<ul class="dropdown-menu">
<?php
$dancers = "SELECT `dancer_name`, `id` FROM `dancers` WHERE name = '$name'";
$dres = mysqli_query($con,$dancers);
$dancerId= 'id';
}
while($data=mysqli_fetch_array($dres)){ ?>
$dancerName = $data['dancer_name'];
<li><a href="dancerProfile.php?id=<?php echo $data['id'];?>"><?php echo $data['dancer_name']; ?>'</a></li>
<li class="divider"><hr></li>
<?php } ?>
<li><a href="addDancer.php">Add New</a></li>
</ul>
</li>
你的dancerProfile.php
应该是
<?PHP
if(isset($_GET['id'])) {
$dancerId=$_GET['id'];
$dancerquery = "SELECT `dancer_name` FROM `dancers` WHERE id = '$dancerId'";
$dancer_res = mysqli_query($con,$dancerquery);
$data=mysqli_fetch_array($dancer_res);
}
?>
<div class="col-sm-6 dancerInfo">
<div class="row">
<div class="col-sm-6">
<div class="dancerName"><?php echo $data['dancer_name'];?></div>
</div>
您目前在每次迭代中都覆盖了 $DANCER
的值,因此最后一个将始终是使用的值。
稍微改变一下你的循环:
while($data=mysqli_fetch_array($dres)){
echo '<li><a href="dancerProfile.php?dancer_name='.$data['dancer_name'].'">'.$data['dancer_name'].'</a></li>';
}