[英]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>
由於所有舞者都出現在下拉列表中,因此效果很好。 我想要的是,當我單擊舞者A時,該舞者Profile.php將顯示舞者A信息。 當我單擊“舞者B”時,將顯示“舞者B”信息等。
但是無論我單擊哪個名稱,它都只會顯示最后一位舞者的信息。
dancerProfile.php
<div class="col-sm-6 dancerInfo">
<div class="row">
<div class="col-sm-6">
<div class="dancerName"><?php echo $dancerName;?></div>
</div>
因此,當我在任何其他頁面的導航欄上單擊舞者A時,在舞者Profile.php中,$ dancerName應該會打印舞者A。 如果我從導航欄中單擊舞者B,它應該打印出舞者B。
但是無論我單擊哪個鏈接,都僅打印舞者B。
我正在使用引導程序。 誰能幫我?
編輯這是我的代碼現在的樣子的更新。
<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>
還有danceProfile.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>
我也忘了提一下,該導航器也在舞者簡介頁面上。 因此,我提供的所有代碼都在danceerProfile頁面上。 我不知道這是否重要
您需要通過舞蹈演員ID或在舞蹈演員表中唯一。 如下所示。
<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>';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.