Oops. I actually tried running it (cleverly waiting until after I posted 
it to the list) and I see that there are some warnings in the event that 
nothing has been selected (due to in_array operating on an undefined 
variable). Don't worry about them. Or change that last foreach clause to 
look like this:

  foreach ($choices as $id => $name)
    print '<option '
      . (is_array($_REQUEST['animals'])
        && in_array($id, $_REQUEST['animals']) ? 'selected ' : '')
      . "value='$id'>$name</option>";

(I added an is_array to make sure we don't send a null value as the second 
argument to in_array).

miguel

On Sat, 25 May 2002, Miguel Cruz wrote:
> Have a play with this little program - it should demonstrate all of the
> things you'd want to do with getting data in and out of mult selects. If
> it doesn't work, you may have an older version of PHP - in that case,
> change "$_REQUEST" to "$HTTP_POST_VARS" and "$_SERVER['PHP_SELF']" to
> "$PHP_SELF".
> 
> ---------------
>   <?
> 
>   $choices = array(1 => 'dog', 2 => 'cat', 3 => 'mouse', 4 => 'frog');
> 
>   if (is_array($_REQUEST['animals']))
>   {           
>     print '<p>You chose:</p><ul>';
>     foreach ($_REQUEST['animals'] as $animal_id)      
>       print "<li>{$choices[$animal_id]}</li>";
>     print '</ul><hr>';
>   }
> 
>   ?><form method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
>   <select multiple name="animals[]"><?
> 
>   foreach ($choices as $id => $name)
>     print '<option '
>       . (in_array($id, $_REQUEST['animals']) ? 'selected ' : '')     
>       . "value='$id'>$name</option>";
> 
>   ?></select><input type="submit"></form>
> 
> ---------------
> miguel
> 
> 
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to