For Programmers: Free Programming Magazines  


Home > Archive > PHP Programming > August 2005 > Stumped with select function









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Stumped with select function
supline

2005-08-30, 6:56 pm

I have a function that creates a select list:

function make_select_ns($name,$array,$persist){
$string = "<select name=\"$name\">";
$string .="<option selected>" . ucfirst($name) . "</option>\n";
if ($name == $array[0]){array_shift($array);} //removes duplicate when
table name equals 1st item in array
foreach ($array AS $value) {
if (($value == $persist) && is_string($persist)){$selected =
"selected";}
else {$selected = "";}
$string .= "<option $selected value='" .
str_pad($value,2,"0",STR_PAD_LEFT) . "'>$value</option>\n";
}
$string.="</select>";
print $string;
}

I have arrays for Months, Days, Years, Hours, and Minutes.

All of the arrays work as expected except for the minutes array which
starts at 0 and goes to 55 in increments of 5. Whenever this loads
after a post the value 0 is selected. What am I missing here? Why
does the zero seem to be causing me problems?

Let me know if you need more information.

Thanks,

-Mark

Marcin Dobrucki

2005-08-30, 6:56 pm



supline wrote:
> I have a function that creates a select list:
>
> function make_select_ns($name,$array,$persist){
> $string = "<select name=\"$name\">";
> $string .="<option selected>" . ucfirst($name) . "</option>\n";
> if ($name == $array[0]){array_shift($array);} //removes duplicate when
> table name equals 1st item in array
> foreach ($array AS $value) {
> if (($value == $persist) && is_string($persist)){$selected =
> "selected";}
> else {$selected = "";}
> $string .= "<option $selected value='" .
> str_pad($value,2,"0",STR_PAD_LEFT) . "'>$value</option>\n";
> }
> $string.="</select>";
> print $string;
> }
>
> I have arrays for Months, Days, Years, Hours, and Minutes.
>
> All of the arrays work as expected except for the minutes array which
> starts at 0 and goes to 55 in increments of 5. Whenever this loads
> after a post the value 0 is selected. What am I missing here? Why
> does the zero seem to be causing me problems?
>
> Let me know if you need more information.


Alternative solution (with PEAR):

$f = new HTML_QuickForm('life_is_simple');

// assuming $array contains our selections and $selected is
// an array of selected values
$array = array_unique($array); // to remove duplicates
$my_select =& $f->addElement('select', 'my_name', 'Select me:', $array);
$my_select->setSelected($selected)
$f->addElement('submit',null,'Submit');
// or some othe way of displaying it
$f->display();

// end

//Marcin
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2010 codecomments.com