我在数据库中有3行。当我单击该按钮时,它应该会将选定的数据发送到会话。但是,最后一行始终发送到会话。我希望将我选择的数据发送到会话(例如:我选择要发送到会话的第一行)
<?php
foreach ($search_row as $row){
if(isset($_POST["aboutcafe"])){
$_SESSION["nama_cafe"] = $row["nama_cafe"];
header("Location: info_cafe.php");
}
?>
<h4 class="text-white"><?= $row['nama_cafe'] ?></h4>
<p class="text-justify"><?= $row['lokasi_cafe'] ?></p>
<p class="letter">No Tel : <?= $row['notel_cafe'] ?></p>
<br>
<form method="post">
<button name="aboutcafe" class="btn btn-light">See about cafe</button>
</form>
<?php
}
?>发布于 2020-10-08 17:01:35
您需要一个表单或一个链接,它们在提交/单击时会将咖啡馆的ID作为参数传递(通过隐藏字段或查询字符串参数)。这基本上是大多数web应用程序在不同数据片段之间移动时的工作方式。
为了扩展你已经得到的东西,它可能是这样的
<form method="post" action="info_cafe.php">
<input type="hidden" name="cafe" value="<?php echo $row["cafe_id"]; ?>"/>
<button type="submit" name="aboutcafe" class="btn btn-light">See about cafe</button>
</form>(并且去掉if(isset位)。
然后,当您将表单提交给cafe_info.php时,$_POST["cafe_id"]将获得相关信息。
或者,您可以将表单替换为超链接,例如
<a href="cafe_info.php?cafe_id=<?php echo $row["cafe_id"]; ?>">See about cafe</a>当单击它时,它会生成一个GET (而不是POST),因此在cafe_info.php中,$_GET["cafe_id"]参数将包含所需的ID。
注意:如果不清楚,以这种方式使用它意味着您不需要涉及会话,这通常不是此类任务的好设计选择。
https://stackoverflow.com/questions/64258872
复制相似问题