colinreedy674
colinreedy674

Reputation: 365

Catch $key and $value in POST

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

Answers (2)

PatrickSJ
PatrickSJ

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

SEoF
SEoF

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

Related Questions