如何根据数据库 ID onclick 重定向动态按钮并检索与相同 ID 关联的记录


我有一个动态按钮,单击时(课程大纲),检索 mysql 数据库记录 ID 并重定向到页面。

我希望它获取与单击的 ID 相关的所有数据,并通过不同的课程大纲显示在同一页面上。
这是行不通的。

我尝试过的:

//button_clicked.php:
<?php 
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
include('connect.php');

// Fetch course data from database
$query = "SELECT id, btn_label, title FROM course";
$result = mysqli_query($conn, $query);
// Generate buttons with course IDs as identifiers
while ($row = mysqli_fetch_assoc($result)) {
    $courseID = $row['id'];
    $courseName = $row['btn_label'];
 
    echo "<button class='courseButton' onclick='redirectToCourse($courseID)'>$courseName</button>";

}
mysqli_free_result($result);

?>
<script src="bttn_clicked.js"></script>
</body>
</html>

//button_clicked.js

function redirectToCourse(courseID) {
    window.location.href = "course_display.php?id=" + courseID;
 }

解决方案1

您最好和最安全的方法是利用您已经在“button_clicked.php”页面中声明的会话 –

引用:

会话变量的工作原理是存储要在多个页面上使用的用户信息(例如用户名、课程名称等)。 默认情况下,会话变量将持续到用户关闭浏览器或会话关闭为止。

设置变量 –

PHP
<?php
//Set session variables...
$_SESSION["courseID"] = $courseID;
$_SESSION["courseName"] = $courseName;
?>

要在新页面“course_display.php”中使用这些值 –

PHP
<?php
session_start(); // Always start the page with 'session_start()...

//Echo session variables that were set on your previous page...
echo "User ID is - " . $_SESSION["courseID"] . ".<br>";
echo "Course Name is - " . $_SESSION["courseName"] . ".";
?>

只要会话打开且有效,您就可以在任何页面上使用这些值。

要查看会话中包含的所有变量 –

PHP
<?php
print_r($_SESSION);
?>

当你完成会话后,一定要销毁它 –

PHP
<?php
session_start();

//Remove all session variables...
session_unset();

//Destroy the session...
session_destroy();
?>

这是会话处理的基础知识,您可以通过搜索 Google 找到更多内容,但它会为您指明正确的方向。 另请阅读更多相关内容 –
PHP 会话[^]

コメント

タイトルとURLをコピーしました