hehehe
hehehe

Reputation: 1

show selected value from dropdown

Hi i have been working on a form wherein there's a dropdown menu and it's values are from the database. My problem is it doesnt show the value selected after submitting the form. what maybe the problem?

<select name="professional" />
        <option value="">Choose one</option>
            <?php 
                $result2 = mysql_query("SELECT * FROM professional");
                while($row2 = mysql_fetch_array($result2))
                {
                    $prc = $row2['name'];
                    $prof = $row2['prcno'] ."\t"."|\t".  $row2['name'] ."\t"."|\t".$row2['profession'];
                    echo "<option value ='$prc'>$prof</option>";
                }

            ?>
        </select>

        <select name="professional" disabled/>
            <option value="">Choose one</option>
            <?php 
                $result2 = mysql_query("SELECT * FROM professional");
                $i=0;
                while($row2 = mysql_fetch_array($result2))
                {
                    $prc = $row2['name'];
                    $p1[$i] = $prc;
                    $prof = $row2['prcno'] ."\t"."|\t".  $row2['name'] ."\t"."|\t".$row2['profession'];
                    $p2[$i] = $prof;
                    if($_POST['professional'] == $p1[$i])
                    {
                        echo "<option selected value ='$p1[$i]'>$p2[$i]</option>";
                    }
                    else
                    {
                        echo "<option value ='$p1[$i]'>$p2[$i]</option>";
                    }

                }

            ?>
        </select>

Upvotes: 0

Views: 3796

Answers (3)

Let me see
Let me see

Reputation: 5094

change these lines to

echo "<option selected value ='<?php echo $p1[$i]; ?>'><?php echo $p2[$i]; ?></option>";

and do not forget to increment your $i too

Hope it will help :)

Upvotes: 0

jwulf
jwulf

Reputation: 169

It seems to me, you're not incrementing $i, so you keep overwriting $p1[0] and $p2[0] in each iteration of the while-loop.

So add $i++ at the beginning or the end of your loop - or drop the whole use of these to arrays ($p1 and $p2) and use $prc and $prof just as you do in the first code-block - or do you need them for something?

Another thing, try removing the space between value and ='$p1[$i]' - but I'm not sure if that's a problem.

Upvotes: 1

Rajiv Ranjan
Rajiv Ranjan

Reputation: 1869

Try
selected="selected"

in stead of

selected

Upvotes: 0

Related Questions