传递来自foreach循环的变量

时间:2017-01-08 23:57:00

标签: php arrays

我有一个数组,我需要显示所有值,所以我使用了foreach循环。 我需要当用户单击“READ”按钮时,传递给oldvisit.php的值是该行的值,我尝试使用SESSION,但传递的值是Array的最后一个。 当然,页面中显示的值是正确的值,但我如何接受并发送到oldvisit.php? 我不能使用form方法,因为这些代码行仍然在Form中。 我几天都找不到解决办法!

<?php 
foreach($Visits as $x => $x_value) {
    $_SESSION['data'] = $x;
    echo "<li><center>". $x . " <input type='button' value='READ' onclick='window.location.href=\"oldvisit.php\" '></li>"; 
} 
?>

1 个答案:

答案 0 :(得分:0)

您当前的代码会在每个循环上覆盖$_SESSION['data'],因此$_SESSION['data']将始终设置为最后一个循环值。我假设$Visits上的密钥(代码上为$x)是您要使用的标识符。

的index.php

<?php
foreach($Visits as $key => $value)
{
    echo "<li>" . $key . " <input type='button' value='READ' onclick='window.location.href=\"oldvisit.php?id=".$key."\"'></li>";
}
?>

oldvisit.php

<?php
echo $_GET['id']; // Remember security (sql injection, etc...)
?>

此示例使用查询字符串(url中之后的所有内容)在脚本之间传递数据。可以使用reserved variable $_GET[]访问查询字符串中的参数。