簡體   English   中英

在 foreach 循環中使用 var 的值

[英]Using the values of a var inside a foreach loop

我正在使用 lms 系統,但遇到了這個問題

foreach($datas as $data){ ?>
   <div style="background-color: #3B4FDF; border-radius: 3%; width: 30%; height: 220px; margin-right: 5%; cursor: pointer;" onclick="location.href='classAdmin_list.php'">
     <p style="font-size: 1.5vw; color: white; position: relative; left: 7%; top: 0%;"> <?= $data['class_name'] ?> </p>
     <p style="font-size: 1vw; color: white; position: relative; left: 75%; top:  -25%;"> <?= $data['class_code'] ?> </p>
     <p style="font-size: 1vw; color: white; position: relative; left: 7%; top: 17%;"> <?= $data['school'] ?> </p>
<?php $_SESSION['className'] = $data['class_name']; ?>
     <img src="foto/balll.png" alt="ball" style="opacity: 0.5; width: 22%; height: 100px; position: relative; left: 75%; top: -30%;">
  </div>
<?php } ?>  

這是一個創建 div 的代碼,如下所示: 在此處輸入圖片說明

那些羅馬數字就是名字。 我目前將它們保存在 foreach 循環內的 $_Session 中。 而這正是問題所在。

當我單擊 div 時,它會將我重定向到如下所示的頁面: 在此處輸入圖片說明

你看到了(I-2)。

我需要 I-2 是基於它被點擊的 div 的類名(羅馬數字)。

但是該值被保存在 $_Session 中,並且 $_Session 被更新並覆蓋以前的值。 所以如果我點擊 1 div (XII-3) 它不會說:“Class XII-3”而是“Class I-2”。

這是我用來制作“X 類”的代碼

<p>
      Class <span><?= $_SESSION['className'] ?></span>
</p>

我看到了一些問題,但它們用於每個循環,所以我問,因為我找不到答案

這不是會話的好用例。 只需將 URL 中的名稱作為查詢參數傳遞:

onclick="location.href='classAdmin_list.php?name=<?= urlencode($data['class_name']) ?>'">

在為 URL 添加值時始終使用urlencode()以確保它們不會破壞 URL

然后在classAdmin_list.php上使用它:

Class <span><?= htmlentities($_GET['name']) ?></span>

輸出數據時始終使用htmlentities()htmlspecialchars()以防止XSS

例如,您需要將img包裝在某種錨中

<a href="/selected.php?className=<?=urlencode($data['class_name'])?>">
    <img src="foto/balll.png" alt="ball" style="opacity: 0.5; width: 22%; height: 100px; position: relative; left: 75%; top: -30%;">
</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM