Как успешно $_POST из на другую страницу в PHP?

#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>
  

Выше будет отправлен тест значения.