Re: Associative array issues with loading values after initialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2008-09-19 at 13:43 -0400, Thomas Bolioli wrote:

> I hav ebeen able to track down that this is the part not working. It 
> throws a parse error:
> PHP Parse error:  syntax error, unexpected T_VARIABLE on the line where 
> the foreach loop starts.
> 
> function dropbox_from_list(&$list, $selected_index){
>     foreach ($list as $k => $v) {
>         if (strcmp($selected_index, $k) == 0) {
>             $select = ' SELECTED';
>         }
>         else {
>             $select = '';
>         }
>         print "<option value='$k'$select>$v</option>";
>     }
> }
> 
> b wrote:
> > Thomas Bolioli wrote:
> >> I should add, it is not working with this funciton, which could be 
> >> the source of the issue.
> >>
> >> function dropbox_from_list($list, $selected_index){
> >>    while ($nex = next($list)) {
> >
> > I'd use foreach() here and avoid next(). At least, reset the array 
> > first. And maybe pass the array by reference:
> >
> > function dropbox_from_list(&$list, $selected_index)
> > {
> >   foreach($list as $k => $v)
> >   {
> >
> >>        $k = key($nex);
> >>        if (strcmp($selected_index, $k) == 0) {
> >>            $select = ' SELECTED';
> >>        }
> >>        else {
> >>            $select = '';
> >>        }
> >>        print("<option value='".$k."'".$select.">".$nex[$k]."</option>");
> >>    }
> >> }
> >
> > Maybe you should also add what it is that's "not working".
> >
> >
> >>
> >> Thomas Bolioli wrote:
> >>> The below function is not working.
> >>> function crm_get_country_list(){
> >>> global $dbh;
> >>>    $result = mysql_query("SELECT * FROM countries ORDER BY 
> >>> pk_country_id ASC", $dbh) or die(mysql_error());
> >>>    $country_list = array(' ' =>' ');
> >
> > Are you starting with an empty key & value so that you'll have an 
> > empty option in your select list? Why not just print an empty one?
> >
> >>>    while ($row = mysql_fetch_assoc($result)){
> >>>        $country_list[$row['pk_countryID']] = $row['country_name'];
> >>>    }
> >>> return $country_list;
> >>> }
> >
> > Start with the obvious: what does $country_list contain when it's 
> > returned?
> >
> > Again, some details about what you're getting would go a long way 
> > toward getting some advice.
> >
> 

You should think about changing that SELECTED line to $select = '
selected="selected"'; as the previous way is not recommended for modern
code.


Ash
www.ashleysheridan.co.uk

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux