How can form submission be handled on the same page in PHP without losing the selected options?

When handling form submission on the same page in PHP, you can use the isset() function to check if the form has been submitted. If the form has been submitted, you can process the data and display any validation errors on the same page. To ensure that the selected options are not lost, you can use the ternary operator to set the selected attribute in the HTML form based on the submitted data.

<?php
$selectedOption = isset($_POST['option']) ? $_POST['option'] : '';

if(isset($_POST['submit'])){
    // Process form data here
    
    // Display validation errors if any
    
    // Display form with selected options
}
?>

<form method="post">
    <select name="option">
        <option value="1" <?php echo ($selectedOption == '1') ? 'selected' : ''; ?>>Option 1</option>
        <option value="2" <?php echo ($selectedOption == '2') ? 'selected' : ''; ?>>Option 2</option>
        <option value="3" <?php echo ($selectedOption == '3') ? 'selected' : ''; ?>>Option 3</option>
    </select>
    <input type="submit" name="submit" value="Submit">
</form>