получить с текстом PHP (не значения) параметров в форме - PullRequest
2 голосов
/ 07 ноября 2011

У меня есть простой HTML:

<select id="rodzajp" name="Rodzaj_pakietu"">
<option value="10">Pak 1</option>
<option value="20">Pak 2</option>
<option value="30">Pak 3</option>
<option value="40">Pak 4 bla </option>
<option value="50">Pak 5 bla bla</option>
</select>

и php:

$Rodzajp = $_POST['Rodzaj_pakietu'];

С этими строками я получаю значение выбранного варианта. Как получить с помощью php выбранный текст опции (Pak 1, Pak 2, Pak 3 ...) вместо значения (10, 20, 30 ..), которое мне нужно для математики в форме?

я действительно надеюсь, что это не очень, очень, очень, очень, очень легко;)

Ответы [ 3 ]

3 голосов
/ 07 ноября 2011

Если PHP не сгенерировал это <select> во-первых, есть только один способ отправить текст с формой:

<select>
   <option>Sometext</option>
</select>

Поскольку в теге параметра нет атрибута value, браузерывместо этого будет отправлено Sometext.

После установки параметра value отправляется только это значение.Вы можете взломать какой-нибудь javascript, чтобы скопировать оба бита данных в форму, как она отправляет, но это безобразный хак.

2 голосов
/ 07 ноября 2011

Я думаю, что поскольку у вас нет значения в поле опций, вы можете попробовать javascript.Например, попробуйте создать скрытое поле в вашей форме, а затем добавьте JS в теги параметров, например:

onclick="document.getElementById('my_hidden_field').value = 10";

Это, вероятно, имеет проблемы с этим .. возможно, вам придется игратьвокруг, но я надеюсь, что вы понимаете, о чем я говорю - используйте JS для динамического изменения скрытого входного значения на то, что вам нужно, а затем получите значение TH с другой стороны с помощью PHP, например:

$Rodzajp = $_POST['my_hidden_field'];

РЕДАКТИРОВАТЬ:

Подумав об этом, событие onclick не будет работать с полем option ... этот код должен делать то, что нам нужно:

JS:

function changeFunc() {
var selectBox = document.getElementById("rodzajp");
var selectedValue = selectBox.options[selectBox.selectedIndex].value;

document.getElementById('my_hidden_field').value = selectedValue;

}

HTML:

<select id="rodzajp" name="Rodzaj_pakietu" onchange="changeFunc();">
<option value="10">Pak 1</option>
<option value="20">Pak 2</option>
<option value="30">Pak 3</option>
<option value="40">Pak 4 bla </option>
<option value="50">Pak 5 bla bla</option>
</select>

<input type="hidden" value="" id="my_hidden_field" />

PHP:

$Rodzajp = $_POST['my_hidden_field'];

Надеждаэто помогает.

0 голосов
/ 07 ноября 2011

Браузер возвращает только то, что находится в параметре значения для тега OPTION. Если вы хотите узнать, что такое «10», вам нужен массив на вашем сервере с конвертацией.

Обратите внимание, у вас также есть дополнительный атрибут "в вашем имени".

...