PHP получить выпадающий список выберите значение параметра


В моем выпадающем списке у меня есть два разных значения для каждого параметра. Как я могу получить и то, и другое? Позвольте мне проиллюстрировать, что я имею в виду.

<select name="my_ddl">
  <option value="<?php $value_Id ?>"><?php $value_text ?></option>
  <option value="<?php $value_Id ?>"><?php $value_text ?></option>
</select>

Когда форма будет опубликована, я хочу иметь возможность получить как $value_id, так и $value_text выбранного параметра. Как я могу это сделать?

$_POST['my_ddl'] получает только одно значение, а не оба.

В asp.net Я мог бы сделать это, просто обратившись к my_ddl.Value и my_ddl.Text.

Спасибо вам!

Author: BalusC, 2010-12-12

4 answers

Строго говоря, это невозможно.

Что вы могли бы сделать , это использовать разделитель в вашем атрибуте value:

<select name="my_ddl">
  <option value="<?php echo $value_Id ?>|<?php echo $value_text ?>"><?php echo $value_text ?>   
  </option>
</select>

И...

<?php    
   list($id, $text) = explode('|', $_POST['my_ddl']);
   //...
?>
 5
Author: Jacob Relkin, 2010-12-12 07:51:09

Еще один странный способ сделать это:

<select name="my_ddl">
  <option value="<?php echo $value_Id ?>[<?php echo $value_text ?>]">
    <?php echo $value_text ?>   
  </option>
</select>

Затем, когда вы его обработаете, вы можете сделать это или, может быть, даже что-то более простое:

foreach ($_POST['my_dd1'] as $value_Id => $value_text) {
  $value_Id = $value_Id;
  $value_text = $value_text;
}

Потому что php обрабатывает [] как означающее, что строка является массивом, и поэтому у вас мгновенно появляется ассоциативный массив. Я согласен, однако, что если вы поместите его туда в первую очередь, вы должны иметь возможность просто снова посмотреть его в коде, а не полагаться на это.

 3
Author: Alexio, 2010-12-12 08:12:57

Если вы используете PHP для заполнения текста для <option>, то, вероятно, вы можете просто посмотреть значение на сервере. Возможно, вам просто нужно использовать $value_id для поиска текста в таблице базы данных?

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

 0
Author: AgentConundrum, 2010-12-12 07:52:50

Вы не можете получить value_text из данных POST. Одним из решений является заполнение скрытого поля после выбора опции с помощью JavaScript.

 0
Author: Sergei, 2010-12-12 07:53:49