У меня есть раздел кода 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']))
. " " . 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);
?>
$i=0;
do{
echo $_POST['someval'.$i];
}while(++$i < 6)
Возможно, так? …
$arr = [];
for ($i = 1; $i <= 6; $i++)
array_push($arr, $_POST["tableserver" . $i]);
$arr; // Contains 6 values (starting from $_POST["tableserver1"] to $_POST["tableserver6"])
Было бы проще разместить массив
так вместо
name="tableserver<?php echo $x; ?>"
использование
name="tableserver[]";
вы можете просто сделать
foreach($_POST['tableserver'] as $tableServer){....}