来自使用While循环创建的<input />的PHP POST值

时间:2018-06-15 17:15:05

标签: php html profile

我正在尝试创建一个页面,该页面显示与作为数据库主键的帐号关联的按钮。当我点击按钮时,我希望该按钮获取其值并将其分配给一个变量,该变量可用于将信息加载到将在按钮单击后加载的配置文件页面。

单击按钮后,我想加载一个配置文件页面,该页面使用值(acc_ID)从数据库加载每个配置文件属性(名称,位置等)。我已经有了这样做的功能,因为我已经设置了当用户登录时他们看到他们的信息填充在他们的个人资料页面中。

到目前为止,我有一个While循环,用所有玩家帐号和&#34;查看个人资料&#34;填充表格。纽扣。每个按钮都被指定为玩家帐号作为值,也是名称的一部分。

$query = "SELECT * FROM player";
$result = mysqli_query($conn, $query);
echo "<table>
<tr>
<th>View Profile</th>
<th>Acct Id</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo" <form action='php/createPlayerProfilesList.php'>";
echo "<tr>";
echo"<td> <input type='submit' name='submit-'.$row[acc_ID].'' value='View 
Profile - $row[acc_ID]'>   </input> </td>";
echo "<td class='viewProfile'><input name='player[]' class='getPlayerId' 
readonly type='text' value='". $row['acc_ID'] ."' > " . $row['acc_ID'] . " 
</input></td>";
echo "<td>" . $row['player_FName'] . "</td>";
echo "<td>" . $row['player_LName'] . "</td>";
echo "</tr>";
echo "</form>";
}
echo "</table>";

我无法弄清楚如何在点击特定的“查看个人资料”按钮后将玩家个人资料信息显示到个人资料模板中,该按钮会将我带到profile.php模板。我知道如何根据acc_ID将信息加载到配置文件模板中,因为它在登录时会这样做,但我无法解决这个问题。

这是根据acc_ID是SESSION变量填充模板的配置文件代码示例。

session_start();
include("navbarphp.php");

if($_SESSION['person_type'] == 'P'){
$acct_ID = $_SESSION['acc_ID'];
$query = "SELECT * FROM player WHERE acc_ID = '$acct_ID'";
$result = mysqli_query($conn, $query);
while($row = $result->fetch_assoc()){
            $location = $row['player_location'];
            $fname = $row['player_FName'];
            $lname = $row['player_LName'];
            $school = $row['high_school'];
            $gpa = $row['GPA'];
            $bio = $row['BIO'];
            $pos = $row['position'];
            }
}

我在这个网站上搜索了一段时间并且有一些有帮助的东西,但最后我仍然无法传递特定的View Profile按钮值。任何帮助都会很棒。感谢

1 个答案:

答案 0 :(得分:0)

您可以通过将html输出调整为以下格式来获得更好的运气:

while($row = mysqli_fetch_array($result))
{
    echo '<tr>';
    echo '<td><form action="php/createPlayerProfilesList.php">';
    echo '<input type="hidden" name="playerId" value="'. $row['acc_ID'] .'">';
    echo '<input type="submit" name="submit" value="View Profile - '. $row['acc_ID'] .'">';
    echo '</form></td>';
    echo '<td>'. $row['player_FName'] .'</td>';
    echo '<td>'. $row['player_LName'] .'</td>';
    echo '</tr>';
}

这样做是将form元素拉入表格单元格中,因为现在你拥有它,包裹一个表格行(这是一个糟糕的HTML)。然后将acc_ID放入隐藏的输入字段,这是用于提取数据的字段。

在您的createPlayerProfilesList.php脚本中,您可以像这样使用它:

<?php
if (!empty($_POST['playerId'])) {
    // ... pull from db based on value in $_POST['playerId']
    $acct_ID = (int)$_POST['playerId'];
    // ...
}
?>

这当然是您可以采取的一种方式的简短示例。例如,现在使用的另一种方法是通过样式元素和使用带有ajax的javascript来提取记录&#39;数据,然后当您单击按钮以查看更多信息时,在页面上的框或叠加层中动态显示。然而,这个例子超出了这个问题的范围;)