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

标签 php html profile

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

单击按钮后,我想加载一个配置文件页面,该页面使用值 (acc_ID) 从数据库加载每个配置文件属性(名称、位置等)。我已经具备执行此操作的功能,因为我已将其设置为当用户登录时他们会看到他们的信息填充在他们的个人资料页面中。

到目前为止,我有一个 While 循环,它用所有玩家帐号和“查看个人资料”按钮填充一个表。每个按钮都分配了玩家帐号作为值,也是名称的一部分。

$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 将信息加载到配置文件模板中,因为它会在他们登录时执行此操作,但我无法弄清楚这一点。

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

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'];
            }
}

我在这个网站上搜索了很长时间,找到了一些有用的东西,但最后我仍然无法传递特定的查看配置文件按钮值。任何帮助都会很棒。谢谢

最佳答案

将 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 来提取数据“记录”,然后在单击按钮“查看更多”时动态显示在框中或覆盖在页面上。然而,这个例子超出了这个问题的范围;)

关于来自 &lt;input&gt; 的 PHP POST 值是使用 While 循环创建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50880076/

相关文章:

html - 如何让我的嵌入式 YouTube iframe 扩展?

python - Django-Registration & Django-Profile,使用你自己的自定义表单

php - 未初始化的字符串偏移 : 0, 为什么?

javascript - 自动将复选框状态/值保存到数据库

CSS Matrix3D 变换

javascript - jQuery:preventDefault() 不适用于 anchor 链接标记(尝试了很多方法!)

c++ - 如何评估程序的运行时?

java - Log4j LocationInfo Struts + Tomcat 缓慢

php xmlParsePITarget : invalid name prefix 'xml' error

php - 在 PHP 中从文本区域发送文本