Как показать выбранную радио-кнопку, когда параметры находятся в массиве? - PullRequest
1 голос
/ 11 апреля 2019

Я хочу вернуть содержимое папки в виде переключателя.Я хотел бы иметь возможность вернуть выбранный параметр в переменную, чтобы я мог затем показать пользователю, что он выбрал.

Как мне решить эту проблему?

Попытка

$dir = '/beta/import/';
if ($dp = opendir($dir)) {
    $files = array();
    while (($file = readdir($dp)) !== false) {
        if (!is_dir($dir . $file)) {
            $files[] = $file;
        }
    }
    closedir($dp);
} else {
    exit('Directory not opened.');
}
if ($files) {
    echo ("<form action=\"#\" method=\"post\">");
    foreach ($files as $file) {
        echo '<input type="radio" name="files[]" value="' . $file . '" /> ' . $file . '<br />';
    }
    echo '<input type="submit" name="submit" value="submit" />' . '</form>';
    echo "<br>";

    if (isset($_POST['submit'])) {
        $selected_val = $_POST['$file'];
        echo "You have selected :" . $selected_val;
    }
} else {
    exit('No files found.');
}

1 Ответ

1 голос
/ 11 апреля 2019

Поскольку вы используете name="files[]", $_POST['files'] будет массивом, а не одним значением. Нет смысла делать это для переключателей, так как вы можете выбрать только одну из них, и массив всегда будет иметь одну запись. Таким образом, вы должны изменить это на name="file".

Если вы сделаете это изменение, ваш код для печати выбора должен работать.

Вам также необходимо удалить action="#" из формы. Это предотвращает отправку формы, поэтому вы никогда не получите $_POST переменных (если вы не отправите форму с помощью AJAX).

...