【问题标题】:PHP pass variable through for loop into linkPHP通过for循环将变量传递到链接中
【发布时间】:2022-02-11 23:36:32
【问题描述】:

我想通过 for 循环将变量传递到链接中,以便加载的页面传递有关正确链接的信息。现在我的代码似乎将最后一个变量存储在 for 循环中并将其传递到链接上。这意味着链接中生成的表格总是引用最后一块。

代码是:

    <?php foreach($result as $key => $result) :?>
    <?php session_regenerate_id(); $_SESSION['id'] = $result['id']; ?>
    <tr>
    <td><?php echo $result['id'] ?></td>
    <td><?php echo $result['date'] ?></td>
    <td><?php echo $result['name'] ?></td>
    <td><div class="btn-group" data-toggle="buttons"><a href="cpt.php?id=$_SESSION['id']" target="_blank" class="btn btn-warning btn-xs" rel="noopener">More details</a></div></td>
    </tr>
    <?php endforeach;?>

关键是该链接应显示有关用户单击的 id 的更多信息。然而,它只显示最后一个 id 的数据。我认为这是因为 $_session['id'] 只是存储最终循环。

【问题讨论】:

  • 为什么你必须在这里使用会话?不能是一个普通的变量来存储 id 值吗?

标签: php html


【解决方案1】:

您正在覆盖循环中的 $result 变量:

<?php foreach($result as $key => $result) :?>

改为这样做:

<?php foreach($result as $key => $value) :?>

那么在你的链接中你应该可以做到:

<a href="cpt.php?id=<?php echo $value['id'] ?>"

我看不出有任何理由在这个循环中使用会话,我建议删除它。您当然不希望在显示 html 块的循环内重新生成会话 ID。

【讨论】:

  • 哇,非常感谢!对于其他有类似问题的人,然后使用 $_GET 调用其他 php 脚本中的变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 2017-04-01
相关资源
最近更新 更多