Индекс приращения в массиве $ _POST

У меня есть раздел кода php, где мне нужно, чтобы индекс $ _POST увеличивался на единицу каждый раз, когда он проходит через "do while" петля. Другими словами, первое появление будет $_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);
?>

0

Решение

$i=0;
do{
echo $_POST['someval'.$i];
}while(++$i < 6)
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

Было бы проще разместить массив

так вместо

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

использование

name="tableserver[]";

вы можете просто сделать

foreach($_POST['tableserver'] as $tableServer){....}
0
По вопросам рекламы [email protected]