我目前有一个数据库,其中包含不同的位置作为我的行,每个位置都有一个 ID、名称和图片。
我正在尝试创建一个 while 循环,为每个位置生成一个表单,其中包含提交输入和作为其标签的 div。我希望每个表单都输出每个对应的placeId。我尝试用 <input type='text' id='PlaceIdInput' name='PlaceIdInput' value='$PlaceId'>
来做这件事,但很快发现它只输出第一个 PlaceId 为 1,即使我点击了地点编号 2 或 3。
我猜这是因为它们都有相同的输入名称,这是不好的。
抱歉,如果我使用了错误的术语,我还在上高中,英语是我的第二语言。我非常感谢您的支持! :D
while($rad = $resultat->fetch_assoc()){
$PlaceId=$rad["PlaceId"];
$PlaceName=$rad["PlaceName"];
$PlacePicture=$rad["PlacePicture"];
echo("
<form method='POST'>
<input id='PlaceInput' type='submit' name='Place' value='Place'>
<label for='PlaceInput'>
<div class='PlaceDiv'>
<p class='PlaceName'>$PlaceName</p>
<div class='ImageDiv'>
<img class='Image' src='$PlacePicture'>
</div>
</div>
</label>
<input type='text' id='PlaceIdInput' name='PlaceIdInput' value='$PlaceId'>
</form>
");
}
if(isset($_POST["地点"])){
$PlaceIdInput = $_POST["PlaceIdInput"];
$sql = "UPDATE User SET UserCurrentPlace='$PlaceIdInput' WHERE UserId='$UserId'";
if($kobling->query($sql)){
}
else {
echo($kobling->error);
}
}
最佳答案
问题是我对多个输入使用了相同的 id。因此,标签选择第一个输入而不是相应的输入。通过制作 id='PlaceInput$PlaceId' 和标签 for='PlaceInput$PlaceId' 即可轻松修复此问题。
关于PHP 是否可以在 while 循环中为每个 POST 表单发送唯一的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51936561/