John_Nil
John_Nil

Reputation: 135

Keep value for SELECT input after validation (Form - POST Method )

I'm trying to keep the value of my select input after validation by php but i can't get it to work.

This works for text input :

<input type="text"  name="answer" id="answer" 
 value="<?php if(isset($_POST['answer'])){ echo $_POST['answer'];}else{ echo '';} ?>">

But how to make this work for input ?

<select name="question" value="<?php  ?>" >
                                <option value="one">Num 1 ?</option>
                                <option value="two">Num 2 ?</option>
                                <option value="three"> Num 3 ?</option>

                            </select>

Upvotes: 0

Views: 1207

Answers (2)

Sharanya Dutta
Sharanya Dutta

Reputation: 4021

You need to use the selected attribute:

<select name="question">
    <option value="one"<?php if(isset($_POST["question"]) && $_POST["question"] == "one") print(" selected")?>>Num 1 ?</option>
    <option value="two"<?php if(isset($_POST["question"]) && $_POST["question"] == "two") print(" selected")?>>Num 2 ?</option>
    <option value="three"<?php if(isset($_POST["question"]) && $_POST["question"] == "three") print(" selected")?>> Num 3 ?</option>
</select>

Upvotes: 1

Jinal Shah
Jinal Shah

Reputation: 315

For Select you need to do it this way

<select name="question" value="<?php  ?>" >
    <option value="one" <?php if(isset($_POST["question"]) && $_POST["question"]=="one"){ echo 'selected';} ?> >Num 1 ?</option>
    <option value="two">Num 2 ?</option>
    <option value="three"> Num 3 ?</option>

 </select>

But I would suggest to do it with JQuery which is much more simplified since this IF statement you will be have to write for every value

Upvotes: 1

Related Questions