#php #html #post
#php #HTML #Публикация
Вопрос:
Я знаю, что было много подобных вопросов, но ни один (который я нашел, и я просмотрел многие, но поправьте меня, если я ошибаюсь) не решил мою проблему.
Как следует из названия вопроса, мне нужно опубликовать параметры выбора на другой странице. Мой код выглядит примерно так:
<form id="join_pool_form" name="join_pool_form" action="connect.php" method="post">
<select name="pool_name" style="width:170px">
<?php
//The options are from an array. This works fine.
foreach($poolnames as $value):
echo '<option value="">'.$value.'</option>';
endforeach;
unset($value);
?>
</select>
<input name="passcode" type="password" autofocus required id="passcode" size="35"style="width:170px">
<input type="submit" id="submit" value="Join Pool">
</form>
The connect.php Страница (действие формы) имеет что-то вроде этого:
<?php
if (isset($_POST['pool_name'])) {
echo "do this";
}else {
echo "do other";
}
Таким образом, результатом этого должно быть «сделать это», но я всегда получаю «сделать другое».
Я очень новичок в этом, поэтому извините меня, если решение чрезвычайно простое. Тем не менее, я просмотрел его несколько раз безрезультатно.
Заранее спасибо.
Спасибо всем за вашу помощь. Проблема решена.
Комментарии:
1. Вы не устанавливаете
value
атрибут для<option>
элементов. Попробуйте что-то вроде'<option value="' . $value . '">' . $value . '</option>'
.2. …также вам не нужно
unset($value);
Ответ №1:
вам просто нужно передать значение в атрибуте html опции:
<select name="pool_name" style="width:170px">
<?php
//The options are from an array. This works fine.
foreach($poolnames as $value):
echo '<option value="'.$value.'">'.$value.'</option>';
endforeach;
unset($value);
?>
</select>
Ответ №2:
<?php
if (isset($_POST['pool_name'])) {
$variable = $_POST['pool_name'];
}else {
$variable = 'Unknown';
}
Комментарии:
1. Не могли бы вы добавить объяснение к вашему сообщению о том, почему ваше решение работает?
Ответ №3:
заменить
echo '<option value="">'.$value.'</option>';
с помощью
echo '<option value="'.$value.'">'.$value.'</option>';
Комментарии:
1. Этот пост автоматически помечается как низкого качества, потому что это такой короткий / только код. Не могли бы вы расширить его, добавив текст, чтобы объяснить, как это решает проблему?
Ответ №4:
Значение параметра выбора должно быть установлено на то, что вы намереваетесь отправить. Если вы не установите его, он ничего не отправит.
<option value='test'>Dont choose this</option>
Выше будет отправлен тест значения.