将php中的变量从表传递到下一页

时间:2014-04-16 16:35:55

标签: php html-table

我正在创建一个表格,当用户点击按钮时,我希望它打开一个名为player_profile的php文件,该页面将调用该特定播放器的更多信息。

当涉及到通过页面传递变量时,我知道这些行中的某些东西都可以工作。

//On page 1
$_SESSION['varname'] = $var_value;

//On page 2
$var_value = $_SESSION['varname'];

然而,当我将它添加到按钮时,php文件不会加载。下面是我的代码,没有传递一个有效的变量。

<?php
$result = mysql_query("SELECT *, CONCAT(FirstName,' ', LastName) AS Name FROM Player WHERE     TeamID = '$TeamID' ORDER BY LastName ASC");
echo "<table id='customers' border='1'>
<tr>
<th>PlayerID</th>
<th>Name</th>
<th>Position</th>
<th>Tries</th>
<th>Tackles</th>
<th>Turnovers</th>
<th> Info </th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row["PlayerID"] . "</td>";
echo "<td>" . $row["Name"] . "</td>";
echo "<td>" . $row['Position'] . "</td>";
echo "<td>" . $row['Tries'] . "</td>";
echo "<td>" . $row['Tackles'] . "</td>";
echo "<td>" . $row['Turnovers'] . "</td>";
echo "<td><form action=player_profile.php>
<input name=id type=hidden value='".$row['PlayerID']."';>
<input type=submit name=submit value=info>
</form></td>";
echo "</tr>";
echo "</tr>";  
}
echo "</table>";

?>

上面的代码非常适合显示表格并将我带到player_profile页面。但是如果将按钮更改为页面下方的代码,以便我可以传递一个不加载的变量

echo "<td><form action=player_profile.php>
<input name=id type=hidden value='".$row['PlayerID']."';>
$_SESSION['varname'] = ".$row['PlayerID'].";
<input type=submit name=submit value=info>
</form></td>";
echo "</tr>";

2 个答案:

答案 0 :(得分:2)

不要使用会话传递参数。它打破了用户期望页面运行的方式。

使用$_GET参数:

<a href="player_profile.php?id=1235">John</a>

然后在player_profile.php做:

$id = isset($_GET["id"]) ? $_GET["id"] : false;
if ($id === false) {
    exit("missing input");
}
// etc

在这里使用会话的问题是,如果有人打开两个不同的玩家档案,他可以期待看到什么?如果他刷新其中一个会怎么样?


更高级且参与的参数传递方式使用URL重写来获得外观漂亮的URL,如:

<a href="/player/1234/John/profile">John</a>

答案 1 :(得分:1)

您有代码尝试在回显中设置会话。你想要它分开:

echo "<td><form action=player_profile.php>
<input name=id type=hidden value='".$row['PlayerID']."'>   
<input type=submit name=submit value=info>
</form></td>";
echo "</tr>";

如果你想访问player_profile.php上的PlayerID变量,你只需使用:

$var_value = $_GET['id'];

你也可以在那时将它放入会话变量中,但我不知道为什么你需要它。