[ad_1]
動的ボタンがあり、クリックすると (コース概要)、mysql db レコード 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セッション[^]
[ad_2]
コメント