我实际上是用HTML / PHP开始我最新的代码。 我正在搜索从mysql数据库中检索数据(人员列表),将其显示到html表格中,然后当我按下按钮时#34;编辑"它会在另一页显示所选人员的详细信息:
它适用于所有行期望表的第一行。 请帮忙!!! 有我的代码:
<table border = 1>
<caption> Liste des personnes </caption>
<tr>
<th>id </th>
<th>nom</th>
<th>prenom</th>
<th>date Naissance</th>
<th>sexe</th>
<th>ville</th>
<th>comptence</th>
<th>photo</th>
</tr>
<?php while ($obj = mysqli_fetch_object($result)){ ?>
<tr>
<td> <?= $obj->id ?> </td>
<td><?= $obj->nom?></td>
<td><?= $obj->prenom?></td>
<td><?= $obj->dateNaissance?></td>
<td><?= $obj->sexe?></td>
<td><?= $obj->ville?></td>
<td><?= $obj->competence?></td>
<?php if (isset($obj->photo)) {?>
<td><img src="uploads/<?= $obj->photo?>" width =20 height = 20 >
<?php } ?>
<td>
<form name="editPerson" action="edit.php" method="POST">
<input type="hidden" name="id" value="<?= $obj->id ?>">
<input type="submit" name="editer" value="Edit">
</form>
</td>
</tr>
<?php } ?>
</table>
&#13;
答案 0 :(得分:0)
您不能拥有action='edit.php'
,因为您将编辑特定用户,而非所有用户。您需要在操作中指定要编辑的用户。它主要使用用户的ID完成。因此,您的操作将如下所示action='edit.php?id=1
。因此,您的方法是GET
。
在edit.php
中,您将拥有一个$_GET['id']
变量,其中包含要编辑的用户的ID。因此,您必须先创建一个新查询来搜索此特定用户。
然后,您可以继续准备查询。
$query = $connexion->prepare('SELECT * FROM users WHERE id = :id');
然后,使用URI中的id执行查询。
$query->execute(['id' => $_GET['id']]);
并将结果转换为变量以获取用户。
然后,您在页面中所要做的就是从上一页进行一些重构。这意味着现在<form>
标记周围会有一个较大的<table>
标记,<td>
标记现在将包含<input value='<?php $user->id; ?>'>
标记,例如ID。现在,您的编辑按钮将成为保存按钮。
<form>
中edit?id=1
的方法本身就是POST
方法。因此,在同一页面中,您将能够更新用户。您还可以将表单转换为其他页面,例如saveUser.php
。只需在所有项目中从一个解决方案保持一致即可。
<form method='POST' action='<?php echo $_SERVER['PHP_SELF']; ?>'>
答案 1 :(得分:0)
使用此代码
<a href="<?php echo "edit.php?id=$obj->id" ?>" target="_blank" style="text-decoration: none;"><input type="submit" name="editer" value="Edit"></a>
而不是
<form name="editPerson" action="edit.php" method="POST">
<input type="hidden" name="id" value="<?= $obj->id ?>">
<input type="submit" name="editer" value="Edit">
</form>
使用$ _GET ['id']获取edit.php文件的id值。 edit.php文件的示例:
$id = $_GET['id']