Как получить метку выпадающего списка из запроса POST? - PullRequest
0 голосов
/ 25 декабря 2009

У меня есть этот массив, который заполняет раскрывающееся меню. Ключ - это ключ моей базы данных, а значение - соответствующее значение базы данных. Проблема, с которой я сталкиваюсь, заключается в том, что при отправке формы POST я получаю числовое значение POST вместо строкового значения в выпадающем списке. Я мог бы запросить базу данных, чтобы получить строку, но должен быть лучший способ сделать это, так как у меня уже есть оба значения в массиве. Я не могу использовать array_search, потому что массив многомерен. Может кто-нибудь предложить руку?

Спасибо

foreach($dd as $k=>$v)
{
    echo'<option value="'.$v['ace_id'].'">'.$v['arua'].'</option>';
}

Ответы [ 2 ]

0 голосов
/ 25 декабря 2009

Если вы хотите, чтобы текстовое имя в раскрывающемся меню вместо ключа, поместите его в значение = "". Если вы хотите и то и другое, поместите их туда и разделите их запятыми и запустите на нем split ().

0 голосов
/ 25 декабря 2009

Поля HTML input (включая select, textarea и button) отправляют только пары имя-значение на сторону сервера (как указано в name и value приписывается). Они не отправляют текстовое представление вдоль него.

Вы уже знаете текст и метки на стороне сервера заранее (как бы вы их распечатали?), Их нет абсолютно никакого смысла в параметрах запроса.

Вы можете решить эту «проблему» несколькими способами:

  1. Просто укажите нужное значение в атрибуте опции value, а не в качестве метки опции.
  2. Добавить скрытые поля ввода, которые возвращают метку опции.
  3. Поддерживать глобальный массив в памяти на стороне сервера с этими парами ключ-значение.
  4. Идите, получите значение из БД.
  5. Ничего не делать. В большинстве случаев они вам на самом деле не нужны, просто пишите умный код.

Обновление : вот базовый пример (без проверки работоспособности, такой как isset и htmlspecialchars, но это зависит от вас):

$selected = $_POST['dropdownname'];

foreach ($options as $value => $label) {
    echo '<option value="' . $value . '"' . ($value == $selected ? ' selected' : '') .  '>' . $label . '</option>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...