$ _POST数组中的增量索引

时间:2014-09-23 13:38:49

标签: php loops increment do-while

我有一段PHP代码,我需要$ _POST索引每次通过"do while"循环时增加1。换句话说,第一次出现是$_POST['tableserver1'],然后下一次出现$_POST['tableserver2'],等等。这循环6次然后停止。

我尝试使用变量作为索引,尝试让它们递增。我在php手册http://php.net/manual/en/language.operators.increment.php中找到了一个示例,它增加了字符串末尾的数字,但我没有任何运气让它在$_POST索引内工作。

此部分代码创建一组包含数据库名称的6个选择列表。我试图让选择列表从$_POST值填充,如果它已设置,否则它为零。

这是我的代码:

<?php 
    $x = 1;

do {
    ?>
    <blockquote>
        <p><?php echo $x . "."; ?>
            <select name="tableserver<?php echo $x; ?>" id="tableserver<?php echo $x; ?>">
                <option selected value="0" <?php
                if (!(strcmp(0, '$tableserver.$x'))) {
                    echo "selected=\"selected\"";
                }
                ?>>Select Server</option>
                        <?php
                        do {
                            if (strpos($row_getnamesRS['service'], '22') !== false) {
                                ?>
                        <option value="<?php echo $row_getnamesRS['memberID'] ?>" <?php
                        if (!(strcmp($row_getnamesRS['memberID'], '$tableserver.$x'))) {
                            echo "selected=\"selected\"";
                        }
                        ?>><?php
                                    echo ucfirst(strtolower($row_getnamesRS['first_name']))
                                    . "&nbsp;" . ucfirst(strtolower($row_getnamesRS['last_name']))
                                    ?></option>
                        <?php
                    }
                } while ($row_getnamesRS = mysqli_fetch_assoc($getnamesRS));
                $rows = mysqli_num_rows($getnamesRS);
                if ($rows > 0) {
                    mysqli_data_seek($getnamesRS, 0);
                    $row_getnamesRS = mysqli_fetch_assoc($getnamesRS);
                }
                ?>
            </select>
        </p>
    </blockquote>
    <?php
    $x++;
} while ($x <= 6);
?>

3 个答案:

答案 0 :(得分:1)

也许是这样的? ...

$arr = [];

for ($i = 1; $i <= 6; $i++)
    array_push($arr, $_POST["tableserver" . $i]);

$arr; // Contains 6 values (starting from $_POST["tableserver1"] to $_POST["tableserver6"])

答案 1 :(得分:1)

$i=0;
do{
   echo $_POST['someval'.$i];
}while(++$i < 6)

答案 2 :(得分:0)

发布数组会更容易

所以而不是

name="tableserver<?php echo $x; ?>"

使用

name="tableserver[]";

你可以做到

foreach($_POST['tableserver'] as $tableServer){....}