-3

Is there any better way doing this without having an error if $personal_info['reg_civil_status'] and $_POST['reg_civil_status'] is empty? Because I'm having an "Undefined Variable Error"

I'm sorry, I am still a junior programmer, I am new to PHP. Anyways thank you.

                    <b>Civil Status: </b>
                    <select class="controler-1" name="reg_civil_status">
                        <?php 
                            foreach($civil_status_opt as $civil_status_opt){
                                if($personal_info['reg_civil_status'] == $civil_status_opt || $_POST['reg_civil_status'] == $civil_status_opt) {
                                    echo "<option selected='selected' value='$civil_status_opt'>$civil_status_opt</option>";
                                }
                                else {
                                    echo "<option value='$civil_status_opt'>$civil_status_opt</option>";
                                }
                            }
                        ?>
                    </select>

1 Answers1

0

You need to use isset with ternary operator to avoid error

<b>Civil Status: </b>
<select class="controler-1" name="reg_civil_status">
    <?php 
        $reg_civil_status = isset($personal_info['reg_civil_status']) ? $personal_info['reg_civil_status'] : "";
        $posted_reg_civil_status = isset($_POST['reg_civil_status']) ? $_POST['reg_civil_status'] : "";

        foreach($civil_status_opt as $civil_status_opt){
            if($reg_civil_status == $civil_status_opt || $posted_reg_civil_status == $civil_status_opt) {
                echo "<option selected='selected' value='$civil_status_opt'>$civil_status_opt</option>";
            }
            else {
                echo "<option value='$civil_status_opt'>$civil_status_opt</option>";
            }
        }
    ?>
</select>
Momin IqbalAhmed
  • 950
  • 6
  • 13