Connecting Tech Pros Worldwide Forums | Help | Site Map

Set the selected text for option box of a menu..

Advo
Guest
 
Posts: n/a
#1: Oct 19 '06
Having major issues with this simple task, and I cant work out why its
not doing as it should/expected.

Basically, ive got a drop down box with the added bit of php:


<select name="title" id="title">
<?php
if($_SESSION['title'] != "") {
echo '<option value="'. $_SESSION['title'] .'"
selected="selected"></option>';
}
else {
echo "<option value=\"\" selected></option>";
}
?>

<option>Mr</option>
<option>Mrs</option>
<option>Miss</option>
<option>Ms</option>
<option>Dr</option>
</select>


Basically, if the user submits a form, the title is stored in the
session, this works fine, and then when returned to the page, the value
should be filled in.

Yet, when they return to the page, there value they selected is not
shown in this box, instead, theres just a gap. The source seems
correct, and this is whats shown:

<select name="title" id="title">
<option value="Mr" selected="selected"></option>

so it is working like that, but still not showing anything.

Any ideas please?

Jonathan N. Little
Guest
 
Posts: n/a
#2: Oct 19 '06

re: Set the selected text for option box of a menu..


Advo wrote:
<snip>
Quote:
Yet, when they return to the page, there value they selected is not
shown in this box, instead, theres just a gap. The source seems
correct, and this is whats shown:
>
<select name="title" id="title">
<option value="Mr" selected="selected"></option>
>
so it is working like that, but still not showing anything.
Because you have made an HTML markup error with the OPTION element. You
are missing the 'displayed' text...

<option value="parsedValue">Displayed Value</option>

Your code:
Quote:
<?php
if($_SESSION['title'] != "") {
echo '<option value="'. $_SESSION['title'] .'"
selected="selected"></option>';
}
...
Needs to be:

if($_SESSION['title'] != "") {
echo '<option value="'. $_SESSION['title'] .'"selected="selected">' .
$_SESSION['title'] .'</option>'; }
....

--
Take care,

Jonathan
-------------------
LITTLE WORKS STUDIO
http://www.LittleWorksStudio.com
Tyrone Slothrop
Guest
 
Posts: n/a
#3: Oct 19 '06

re: Set the selected text for option box of a menu..


On 19 Oct 2006 04:53:58 -0700, in comp.lang.php you wrote:
Quote:
>Having major issues with this simple task, and I cant work out why its
>not doing as it should/expected.
>
>Basically, ive got a drop down box with the added bit of php:
>
>
><select name="title" id="title">
><?php
>if($_SESSION['title'] != "") {
> echo '<option value="'. $_SESSION['title'] .'"
>selected="selected"></option>';
> }
>else {
> echo "<option value=\"\" selected></option>";
>}
>?>
>
><option>Mr</option>
><option>Mrs</option>
><option>Miss</option>
><option>Ms</option>
><option>Dr</option>
</select>
>
>
>Basically, if the user submits a form, the title is stored in the
>session, this works fine, and then when returned to the page, the value
>should be filled in.
>
>Yet, when they return to the page, there value they selected is not
>shown in this box, instead, theres just a gap. The source seems
>correct, and this is whats shown:
>
><select name="title" id="title">
><option value="Mr" selected="selected"></option>
>
>so it is working like that, but still not showing anything.
>
>Any ideas please?
It looks like your HTML syntax is the problem:
<option value="Mr">Mr</option>

I generally code selects like:
<?
$title_array = array ('Mr','Mrs','Miss','Ms','Dr');
foreach ($title_array as $title) { ?>
<option
value=<?=$title?>"<?=(in_array($_SESSION['title'],$title_array))?'
selected':''?>><?=$title?></option>
<? } ?>
Closed Thread