Reputation: 365
I have been trying to do this for a few hours now, what i;m trying to do is, the i POST a form, i want to grab the $key and $value values in the $_POST.
Code:
<div class="row form-group">
<div class="col-sm-4 text-right">
<label for="" class="control-label">What would you like done?:</label>
</div>
<div class="col-sm-8">
<select id="task_done" name="task_done" class="form-control" required="required">
<?php $tasks = array(
1 => "[Task 1] - task 1 name ...",
2 => "[Task 2] - task 2 name ...",
);
?>
<optgroup label="Tasks">
<?php foreach ($tasks as $key => $value) { ?>
<option value="<?php echo htmlspecialchars($key) ?>"><?php echo htmlspecialchars($value) ?></option>
<?php } ?>
</optgroup>
</select>
</div>
</div>
When i catch the $_POST['task_done'] it only gets the $key value, but i need the $value one too, is there a way i can get both?
Thank you for any help guys!
Upvotes: 1
Views: 47
Reputation: 510
You could make the key the same as the displayed text. Otherwise you could use your array to lookup the $value based on $key.
Upvotes: 0
Reputation: 1114
Since you have the $key => $value
pairs in PHP, you could use the same list on the PHP side to derive the $value
from the $key
.
Alternatively, have both the key and the value in the value
attribute of the option
element, separated by something that isn't ever in either, for example |
. This way, you can list($key, $value) = explode($_POST['task_done'], '|');
upon receipt to get the two.
Upvotes: 1