PHP 是否可以在 while 循环中为每个 POST 表单发送唯一的值?

标签 php mysql sql while-loop

我目前有一个数据库,其中包含不同的位置作为我的行,每个位置都有一个 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/

相关文章:

php - Laravel & Stripe - 无法识别的请求 URL (GET :/v1/customers/)

php - 如何在登录后重定向一个人

php - 在 AppEngine 上部署应用程序后无法连接 MySQL

php - PDO:参数编号无效

mysql - SQL计数和求和问题

mySQL 查询中的 PHP 整型变量

php - 使用 PDO 建立与本地主机数据库的连接时出现问题

php - 脚本关闭后 MySQL 插入继续

sql - 企业报告解决方案

sql - 完整性错误 - Flask 和 SQLAlchemy