Получить текст из тега опций в PHP

Я хочу получить текст внутри тегов параметров, а также значение.

EX:

<select name="make"> <option value="5"> Text </option> </select> 

Я использовал $ _POST ['make']; и я получаю значение (5), но я хочу получить как значение, так и текст .

Как я могу это сделать, используя php.

Как насчет этого? Я думаю, что это лучшее решение, потому что вы разделили поля на каждую информацию. Только одно скрытое поле, которое обновляется при каждом изменении и избегает сопоставлений жесткого кодирования.

Это внутри HTML:

 <select name='make' onchange="setTextField(this)"> <option value = '' selected> None </option> <option value = '5'> Text 5 </option> <option value = '7'> Text 7 </option> <option value = '9'> Text 9 </option> </select> <input id="make_text" type = "hidden" name = "make_text" value = "" /> <script type="text/javascript"> function setTextField(ddl) { document.getElementById('make_text').value = ddl.options[ddl.selectedIndex].text; } </script> 

Это внутри PHP:

 <?php $value = $_POST["make"]; $text = $_POST["make_text"]; ?> 

установите значение текста в значение тега параметра, будь то статическая разметка HTML или даже если он создается сценарием на стороне сервера. Вы получите атрибут value только через POST

Другой вариант, однако, на стороне сервера, заключается в сопоставлении значения («5») с ассоциативным массивом, т.е.

 <?php $valueTextMap = array("5" => "Text"); $value = $_POST['make']; //equals 5 $text = $valueTextMap[$value]; //equals "Text" ?> 

Вам нужно будет включить этот текст в значение для начала (например: <option value="5_Text"> Text </option> а затем проанализировать или …

Вы можете использовать javascript на странице, чтобы отправить текст в качестве другого парма в действии POST.

Чтобы получить как метку, так и значение, используя только PHP, вам нужно иметь оба аргумента как часть значения.

Например:

 <select name="make"> <option value="Text:5"> Text </option> </select> 

PHP-код

 <?php $parts = $_POST['make']; $arr = split(':', $parts); print_r($arr); 

Вывод:

 Array( [0] => 'Text', [1] => 5 ) 

Это один из способов сделать это.