Rozwiązanie z polem ukrytym zda egzamin w przypadku przycisków radio, bo tutaj wybór może być tylko jeden. Natomiast przy polach checkbox trzeba się będzie bardziej napocić.
Najlepiej by było przekazywać po prostu id opcji i odczytywać to id choćby z najzwyklejszej tablicy:
'name' => 'Basic: This package is aight.',
'price' => 99.97
),
'name' => 'Professional: This package straight rocks.',
'price' => 149.50
)
),
);
if(isset($_POST['package']) && $_POST['package'] != '') { $package_name = $options['packages'][$_POST['package']]['name'];
$package_price = $options['packages'][$_POST['package']]['price'];
}
<input type="radio" name="package" value="1" />
Minusem takiego rozwiązania jest to, że musimy samodzielnie kontrolować zawartość tablicy $options (chyba, że na podstawie tej tablicy utworzymy formularz). Moim zdaniem jest to jedyne sensowne podejście do tematu. Oczywiście można się bawić z dodawaniem w "czasie rzeczywistym" ukrytych pól, ale czy to ma jakiś większy sens?
Swoją drogą przesyłając identyfikatory opcji nadal jesteś w stanie wyliczyć sumę.