У меня есть страница php, которая состоит из 3 раскрывающихся списков данных, заполненных из файла базы данных sqlite (comics.db).
Я пытаюсь сохранить код, используя для l oop ( Мне нужно три раскрывающихся списка), но когда я нажимаю «отправить запрос» на странице «Действие формы». php 'не производит три ввода, выбранные пользователем, т.е. символ [1], символ [2] и символ [3].
Я пробовал различные комбинации этой строки:
echo '<input list="characters" name="character[$x]">';
, но я получаю пустую страницу. php. Я предполагаю, что переменная _POST не хранит три входа из индекса. php page?
Я застрял на этом несколько дней, я пробовал переменные сеанса, но не могу найти ответ, который работает, кроме повторения блока кода три раза с именем = символ1, 2, 3 и т. д. c ... Конечно, есть цикл / массив, который работает?
, пожалуйста, помогите!
Мой индекс. php страница:
<html>
<body>
<?php
class MyDB extends SQLite3 {
function __construct() {
$this->open('comics.db');
}
}
for ($x = 1;$x < 4;$x++) {
$db = new MyDB();
$sql = <<<EOF
select character_name from characters group by character_name order by character_name asc;
EOF;
$ret = $db->query($sql);
echo '<form action="page.php" method="post">';
echo '<label for="character">Character: </label>';
echo '<input list="characters" name="character[$x]">';
echo '<datalist id="characters">';
while ($row = $ret->fetchArray(SQLITE3_ASSOC)) {
unset($name);
$name = $row['character_name'];
echo '<option value=""></option>';
echo '<option value="' . $name . '">' . $name . '</option>';
}
echo "</datalist>";
$db->close();
}
echo '<input type="submit" name="submit" />';
echo '</form>';
?>
</body>
</html>
Моя страница. php:
<html>
<body>
<?php
for($x = 1; $x < 4; $x++) {
if(isset($_POST['character[$x]'])) {
$character = $_POST['character[$x]'];
echo "$character";
}
}
?>
</body>
</html>