有没有办法在循环中获取$ _POST变量?

时间:2019-07-03 20:51:47

标签: php

是否有一种方法可以根据我要吸引的用户数量来制作一个循环给我听?

$user1 = htmlentities($_POST['user1']);
$user2 = htmlentities($_POST['user2']);
$user3 = htmlentities($_POST['user3']);

我已经尝试过了,但是显示了这些错误

    while ($i <= $useramm) {
        ${"user$i"} = htmlentities($_POST['user-' + $i]);
        $i=$i+1;
    }

警告:第14行的C:\ xampp \ htdocs \ test.php中遇到的非数字值 注意:未定义的偏移量:第14行的C:\ xampp \ htdocs \ test.php中的1

1 个答案:

答案 0 :(得分:0)

是的,您可以使用变量变量来执行此操作,但是您需要使用串联运算符而不是加法运算符。

$i = 0;
while (++$i <= $useramm) {
    ${"user$i"} = htmlentities($_POST['user' . $i]);
}

更好的方法是使用数组。不用对字段user1user2等进行编号,只需使用数组即可。

在您的HTML中,将POST字段定义为与末尾的[]同名。 PHP将其解析为具有键user的数组:

<form method="POST">
    <input type="text" name="user[]" />
    <input type="text" name="user[]" />
    <input type="text" name="user[]" />
    <input type="text" name="user[]" />
    <input type="submit" value="submit">
</form>

然后在PHP中,您可以循环或直接通过索引使用数组值。

foreach ($_POST['user'] as $singleUser) {
    // use $singleUser here
}
// or 
$_POST['user'][0]; // first user field
$_POST['user'][1]; // second user field
相关问题