I guess I spoke too soon. I did it as an array
#default_value => array(2,3)
and upon viewing the source, I discovered that it adds the selected="selected" attribute to my option tags like I want. The problem is, the items aren't being highlighted on the screen.
so this code:
* * Define the project permissions settings form */ function project_permissions_form($project_nid, $project_name) { $form['#base'] = 'project_permissions_form';
$form[$project_nid] = array( '#type' => 'fieldset', '#title' => $project_name, '#collapsible' => TRUE, '#collapsed' => FALSE, );
$form[$project_nid]['projects'] = array( '#type' => 'textfield', '#title' => t('Project name'), '#maxlength' => 30, '#size' => 30, '#default_value' => $project_name, );
$form[$project_nid]['users'] = array( '#type' => 'select', '#title' => t('Users with access to project'), '#description' => t('Select users to be asssigned to the project'), '#options' => _get_user_list(), '#multiple' => TRUE, '#default_value' => array(2,3), );
$form[$project_nid]['nid'] = array( '#type' => 'hidden', '#value'=> $project_nid, );
$form[$project_nid]['submit'] = array( '#type' => 'submit', '#value' => 'Submit' ); return $form; }
gives me this HTML:
<div class="form-item"> <label for="edit-users">Users with access to project: </label> <select name="users[]" multiple="multiple" class="form-select" id="edit-users" ><option value="1">admin</option><option value="2" selected="selected">bwald</option><option value="3" selected="selected">testuser</option><option value="4">Brian</option><option value="5">NickH</option></select>
<div class="description">Select users to be asssigned to the project</div> </div>
So why wouldn't the items be highlighted on the screen?
Steve
-------- Original Message -------- Subject: Re: [support] How to add "selected" attribute to select list <option>tag Date: Tue, 27 Nov 2007 21:04:32 -0800 From: Steve Edwards killshot91@comcast.net To: support@drupal.org References: 474CED98.8090201@comcast.net AF8E53B658278947AA3E09E48EF4EDAC3D73A3@TRV1DMC00.TRV.local
Hmmm, getting closer, but I can't seem to get it to work. No matter what I try, I can't get it to select anything.
Here is what my select list looks like (in HTML)
<option value="1">Name 1 <option value="2">Name 2 <option value="3">Name 3 <option value="4">Name 4 <option value="5">Name 5
The value is the user's uid. number That being the case, what would i use for #default_value? I've tried things like
'#default_value' => array(1 => 'Name 1') '#default_value' => 1 '#default_value' => 'Name 1'
but I can't get any of them to work. Any ideas?
Thanks.
Steve
Greg Holsclaw wrote:
Make the #default_value an array of the keys of the options you want selected.
$form['item'] = array( '#type' => 'select', ... '#options' => array of all options, '#default_value' => array of keys from above options. ... );
Check http://api.drupal.org/api/file/developer/topics/forms_api_reference.html /5#default_value for more info.
Greg
-----Original Message----- From: support-bounces@drupal.org [mailto:support-bounces@drupal.org] On Behalf Of Steve Edwards Sent: Tuesday, November 27, 2007 8:25 PM To: support@drupal.org Subject: [support] How to add "selected" attribute to select list
<option>tag
Well, I'm back again, and this time I have a question about attributes for select options in a form. I have a form that has a select element (multi-select) that lists users. The form is for some admin settings for a module. When the form is displayed, I need to be able to highlight specific options in the list based on data returned from a query. I've been looking all day, and haven't been able to figure it out. There is the #attribute key, but it is for the field as whole (at least as far as I can determine), and doesn't work for each individual <option> tag.
If anybody could point me in the right direction, I would appreciate it.
Thanks.
Steve