Как обработать поле выбора в PHP, если вы хотите обработать фактический "<параметр>", а не атрибут "значение"?

<span> Kamertype :</span>
        <select class="autowidthselect" required area-required="true" name="prijskamertype" onChange="calculatePrice()" id="prijskamertype">
            <option selected="selected" value="">Selecteer kamertype</option>
            <option value="295">Kraaiennest</option>
            <option value="395">Kajuit</option>
            <option value="495">Kapiteinshut</option>
        </select>

Когда я обрабатываю вышеупомянутое с помощью кода PHP ниже, он показывает мне содержимое, определенное в атрибуте 'value', которые в данном случае являются ценами. Я на самом деле хочу показать содержание, определенное в <option> метка (Краайеннест, Каюит, Капитейнсхут). Как мне этого добиться?

(Я не могу изменить значения, из-за расчета общей цены в конце формы)

<?php
$prijskamertype = $_POST ['prijskamertype'];
echo $prijskamertype.' type';
?>

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

Я создал массив и выпадающий список с ним:

<?php
$optionskamertype = array();
$optionskamertype[""] = "Selecteer kamertype";
$optionskamertype["295"] = "Kraaiennest";
$optionskamertype["395"] = "Kajuit";
$optionskamertype["495"] = "Kapiteinshut";
?>

HTML-код:

        <span> Kamertype :</span>
        <select class="autowidthselect" required area-required="true" name="prijskamertype" onChange="calculatePrice()" id="prijskamertype">

             <?php
                foreach($optionskamertype as $key => $value)
                {
                    echo '<option value="'. $key .'" label="'. $value .'">'.$value.'</option>';
                }
             ?>

        </select>

Что мне теперь делать?

2 ответа

Решение

Это на самом деле не связано с PHP, это то, как работают HTML-формы: единственное, что отправляется на сервер браузером, - это содержимое value приписывать. (Или, если его нет, содержимое тега option, но это не очень помогает, потому что вы все равно получаете только одно значение.)

Что вы можете сделать, тем не менее, иметь массив в вашем PHP-коде, который имеет значения и метки всех опций. Вы можете использовать это, чтобы сначала создать раскрывающийся список, а затем, когда форма отправлена, сделать что-то вроде этого:

$label = $option_list[ $_POST['whatever'] ];

Нет никакого способа сделать это простым PHP.

Редактировать:

Это может быть возможно в JavaScript, но это ненадежно, так как клиент контролирует его.

Другие вопросы по тегам